home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ADA Programming Guide
/
ADA Programming Guide.iso
/
adatutor
/
lrmrdr
/
sdd.doc
< prev
next >
Wrap
Text File
|
1996-01-30
|
436KB
|
13,378 lines
<!OPS, Version = 6.4>
<!Document,
Final Output Device = "cx",
Default Printer = "nearest-cx">
<!Font Definitions,
F40 = Thames 10,
F101 = Swiss 18 Bold,
F57 = Thames 18 Bold,
F97 = Swiss 14 Bold,
F84 = Swiss 10,
F22 = Typewriter 10,
F85 = Swiss 10 Bold,
F41 = Thames 10 Bold,
F93 = Swiss 12 Bold,
F86 = Swiss 10 Italic,
F96 = Swiss 14,
F92 = Swiss 12,
F53 = Thames 14 Bold>
<!Page,
Left Margin = 1 inches,
Right Margin = 1 inches,
Starting Page # = Inherit,
Hyphenation = on,
Revision Bar Placement = Left,
Feathering = off,
Max. Feathering = 8>
<!Autonumber Stream, Outline, 3,
Level 1 Symbol Type = Upper Roman,
Level 2 Symbol Type = Upper Alpha>
<!Autonumber Stream, App_List, 4,
Level 1 Symbol Type = Upper Alpha>
<!Autonumber Stream, List, 4>
<!Autonumber Stream, NList, 4>
<!Class, appendix,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F101,
Begin New Page = yes,
Contents = Prefix>
<"|:appendix",
Hidden = yes,
Font = @i*,
Subcomponent = yes,
Contents = Shared><F0><Autonum, App_List, 1><End Sub><F0>
<!Class, justified,
Top Margin = 0.14 inches,
Bottom Margin = 0 inches,
Line Spacing = 1.308 lines,
Font = F40,
Left Tab = 0.50/0.50*29 Inches>
<!Class, left,
Top Margin = 0.14 inches,
Bottom Margin = 0 inches,
Line Spacing = 1.308 lines,
Alignment = Left,
Font = F40,
Left Tab = 0.50/0.50*29 Inches>
<!Class, right,
Top Margin = 0.14 inches,
Bottom Margin = 0 inches,
Line Spacing = 1.308 lines,
Alignment = Right,
Font = F40,
Left Tab = 0.50/0.50*29 Inches>
<!Class, title_line,
Line Spacing = 1.179 lines,
Alignment = Center,
Font = F97>
<!Class, "|:appendix",
Top Margin = 0.04 inches,
Bottom Margin = 0.04 inches,
Line Spacing = 1.162 lines,
Font = F101@i*,
Left Tab = 0/1*3 Inches,
Composition = Optimum,
Contents = Shared>
<Autonum, App_List, 1>
<!Class, "|:list",
Top Margin = 0.04 inches,
Bottom Margin = 0.04 inches,
Line Spacing = 1.162 lines,
Font = F84@i*,
Left Tab = 0/1*3 Inches,
Composition = Optimum,
Contents = Shared>
<Autonum, NList, 1>
<!Class, "|:section",
Top Margin = 0.04 inches,
Bottom Margin = 0.04 inches,
Line Spacing = 1.162 lines,
Font = F101@i*,
Left Tab = 0/1*3 Inches,
Composition = Optimum,
Contents = Shared>
<Autonum, List, 1>
<!Class, "|:subsection",
Top Margin = 0.04 inches,
Bottom Margin = 0.04 inches,
Line Spacing = 1.162 lines,
Font = F97@i*,
Left Tab = 0/1*3 Inches,
Composition = Optimum,
Contents = Shared>
<Autonum, List, 2>
<!Class, "|:subsubsection",
Top Margin = 0.04 inches,
Bottom Margin = 0.04 inches,
Line Spacing = 1.162 lines,
Font = F97@i*,
Left Tab = 0/1*3 Inches,
Composition = Optimum,
Contents = Shared>
<Autonum, List, 3>
<!Class, "|:subsubsubsection",
Top Margin = 0.04 inches,
Bottom Margin = 0.04 inches,
Line Spacing = 1.162 lines,
Font = F97@i*,
Left Tab = 0/1*3 Inches,
Composition = Optimum,
Contents = Shared>
<Autonum, List, 4>
<!Class, LRM_Name,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F40@iL@iS@iU@iR@iT@iB@iP@iK@iC@iZ@iO,
Left Tab = 0.50/1.50 Inches,
Contents = Shared>
Ada LRM Reader
<!Class, center,
Top Margin = 0.14 inches,
Bottom Margin = 0 inches,
Line Spacing = 1.308 lines,
Alignment = Center,
Font = F57,
Left Tab = 0.50/0.50*29 Inches>
<!Class, code,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Left Margin = 0.50 inches,
Line Spacing = 1.308 lines,
Font = F22>
<!Class, codepara,
Left Margin = 0.50 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
<!Class, list,
Left Margin = 0.50 inches,
First Indent = -0.25 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F84,
Left Tab = 0.50/1.50 Inches,
Contents = Prefix>
<"|:list",
Hidden = yes,
Font = @i*,
Subcomponent = yes,
Contents = Shared><F0><Autonum, NList, 1><End Sub><F0>
<!Class, micro:caption,
Top Margin = 0.03 inches,
Bottom Margin = 0.03 inches,
Line Spacing = 1.114 lines,
Font = F57,
Left Tab = 0/0.50*3 Inches,
Composition = Optimum>
<!Class, paragraph,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.308 lines,
Font = F84>
<!Class, paralist,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Left Margin = 0.50 inches,
Line Spacing = 1.308 lines,
Font = F84>
<!Class, section,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F101,
Begin New Page = yes,
TOC Doc Name = "SDD Toc",
Contents = Prefix>
<"|:section",
Hidden = yes,
Font = @i*,
Subcomponent = yes,
Contents = Shared><F0><Autonum, List, 1><End Sub><F0>
<!Class, subhead,
Top Margin = 0.07 inches,
Bottom Margin = 0.07 inches,
Line Spacing = 1.308 lines,
Alignment = Center,
Font = F97>
<!Class, subsection,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F97,
TOC Doc Name = "SDD Toc",
Contents = Prefix>
<"|:subsection",
Hidden = yes,
Font = @i*,
Subcomponent = yes,
Contents = Shared><F0><Autonum, List, 2><End Sub><F0>
<!Class, subsubsection,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F97,
TOC Doc Name = "SDD Toc",
Contents = Prefix>
<"|:subsubsection",
Hidden = yes,
Font = @i*,
Subcomponent = yes,
Contents = Shared><F0><Autonum, List, 3><End Sub><F0>
<!Class, subsubsubsection,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F97,
TOC Doc Name = "SDD Toc",
Contents = Prefix>
<"|:subsubsubsection",
Hidden = yes,
Font = @i*,
Subcomponent = yes,
Contents = Shared><F0><Autonum, List, 4><End Sub><F0>
<!Master Frame,
Name = Auto,
Placement = At Anchor,
Width = 0.41 inches,
Height = 0.137 inches,
Diagram =
V6,
(g9,0,0)>
<!Master Frame,
Name = Bottom,
Placement = Bottom of Page,
Horizontal Alignment = Center,
Width = 6.50 inches,
Height = 3.25 inches,
Diagram =
V6,
(g9,0,0)>
<!Master Frame,
Name = "Following Anchor",
Placement = Following Anchor,
Horizontal Alignment = Center,
Width = 6.50 inches,
Height = 3.25 inches,
Diagram =
V6,
(g9,0,0)>
<!Master Frame,
Name = "Following Text",
Placement = Following Text,
Horizontal Alignment = Center,
Width = 6.50 inches,
Height = 3.25 inches,
Diagram =
V6,
(g9,0,0)>
<!Master Frame,
Name = Footnote,
Placement = Bottom of Page,
Horizontal Alignment = Left,
Same Page = yes,
Width = 6.50 inches,
Height = 0.20 inches,
Diagram =
V6,
(g9,0,0)>
<!Master Frame,
Name = Top,
Placement = Top of Page,
Horizontal Alignment = Center,
Width = 6.50 inches,
Height = 3.25 inches,
Diagram =
V6,
(g9,0,0)>
<!Master Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 0.41 inches,
Height = 0.14 inches,
Diagram =
V6,
(g9,0,0)>
<Page Header, Frame =
V6,
(g9,1,0
(T12,1,12,0.2,0.6,7,127,5,7,127,8,0,2,
<!Page, Width = 1.533 inches, Height = 0.193 inches>
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Font = F97>
Ada LRM Reader
<End Text>)
(t14,2,0,5,0.733333,0,7,0,0,,wst:swiss14b,Richard\ Conn)
(t14,3,0,2.733333,0.466667,0,7,0,0,,wst:swiss14b,SDD))>
<Page Footer, Frame =
V6,
(g9,1,0
(t14,1,0,3.066667,0.4,1,7,0,0,,wst:swiss14b,\X80a0))>
<section>
<|,1><"|:section", Subcomponent = yes><F0><Autonum, List, 1, First = Yes, Restart = Yes, Value = 1.><End Sub>
<F0> Scope
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Left Tab = 0.50/1.50 Inches>
The <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>
is a tool for browsing through an online copy of the Ada Language
Reference Manual (LRM). This tool allows a user to interactively
view the Ada LRM, search for strings, and move through the Ada LRM
with ease. Ease of human interface is a chief concern.
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Left Tab = 0.50/1.50 Inches>
The target user is assumed to have a VT100-style display terminal
or VT100 emulation capabilities. The user will be using this tool
in one of several modes:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, First = Yes, Restart = Yes, Value = 1.><End Sub>
<F0> As a user on a UNIX workstation running in a VT100 emulator window,
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> As a user accessing a UNIX workstation remotely, also running
a VT100 or VT100 emulator on a PC, and
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> As a user on a PC running the Ada LRM Reader on the PC.
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Left Tab = 0.50/1.50 Inches>
The <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>
is a single program written in Ada and will be considered to be a
single CSCI. This CSCI includes:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> The source code, in Ada, of the <LRM_Name, Subcomponent = yes><F40>Ada
LRM Reader<End Sub><F0>
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> All data files needed by the <LRM_Name, Subcomponent = yes><F40>Ada
LRM Reader<End Sub><F0>
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> All source files and programs used to create the data files needed
by the <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> All documentation associated with the <LRM_Name, Subcomponent = yes><F40>A
da LRM Reader<End Sub><F0>
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> Installation instructions for compiling the setting up the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> for
a PC or UNIX platform
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 6.><End Sub>
<F0> A complete executable version of the <LRM_Name, Subcomponent = yes><F40>Ad
a LRM Reader<End Sub><F0> with its associated data files and installation
instructions which is ready to run on a PC under MSDOS 3.3 or higher
<section>
<|,2><"|:section", Subcomponent = yes><F0><Autonum, List, 1, Value = 2.><End Sub>
<F0> References
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 2.1.><End Sub>
<F0> Documents
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines>
Conn, Richard, <F85>Software Requirements Specification for the
<LRM_Name,
Font = F41@iL@iS@iU@iR@iT@iB@iP@iK@iC@iZ@iO,
Subcomponent = yes><F41>Ada LRM Reader<End Sub><F0>, University
of Cincinnati, Department of Electrical and Computer Engineering,
Mail Location 30, Cincinnati, Ohio 45221<HR>
<HR>
This document contains other references which may be useful.
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines>
Conn, Richard, <F85>Software User's Manual for the
<LRM_Name,
Font = F41@iL@iS@iU@iR@iT@iB@iP@iK@iC@iZ@iO,
Subcomponent = yes><F41>Ada LRM Reader<End Sub><F0>, University
of Cincinnati, Department of Electrical and Computer Engineering,
Mail Location 30, Cincinnati, Ohio 45221
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 2.2.><End Sub>
<F0> Terminology
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines>
The following application-specific terms are defined below in order
to better follow this document:
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines>
<F93>Citation<F0> - A body of text in the Ada LRM or an LRM Support
File which is uniquely identified by a numeric reference or a keyword
(these are called citation labels). For example, the citation identified
by 4 is:
<codepara>
4. Names and Expressions<HR>
<HR>
<HR>
The rules applicable to the different forms of name and expression,
and<HR>
to their evaluation, are given in this chapter.
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Left Tab = 0/1/1.50/0.75*27 Inches>
<F93>Citation Label<F0> - A numeric reference or a keyword which identifies
a citation. For example, 4 is the citation label for the above citation.
Valid citation labels take the following forms:<HR>
<HR>
<F86>Label<Tab>Refers to<F0><HR>
n<Tab>Chapter (1-14)<HR>
n.n<Tab>Chapter and Section<HR>
n.n.n<Tab>Chapter, Section, and Subsection<HR>
letter<Tab>Appendix (A-F)<HR>
CONTENTS<Tab>Table of Contents<HR>
INDEX<Tab>Index<HR>
FOREWARD<Tab>Foreward<HR>
POSTSCRIPT<Tab>Postscript<HR>
HELP<Tab>Online help screens for the Ada LRM Reader<HR>
ABOUT<Tab>Online program description of the Ada LRM Reader
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines>
<F93>Citation ID<F0> - An alphabetic reference used in the CITATION_ID
enumeration type which maps to a citation label. Citation IDs are
discussed in the Software Design Document for the Ada LRM Reader.
Each citation label has one and only one citation ID.
<section>
<|,3><"|:section", Subcomponent = yes><F0><Autonum, List, 1, Value = 3.><End Sub>
<F0> Design
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 3.1.><End Sub>
<F0> CSCI overview
<paragraph>
The <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>
is a program (composed of a single CSCI) which interacts with a user
through a command-line and a line-oriented editor to display information
in the Ada Language Reference Manual (LRM) to the user one screen
at a time. The major components of this environment are:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,0.4,1.066667,0.8,1.066667,7,0,8,0)
(v6,2,0,0.8,1.066667,1.066667,0.4,7,0,8,0)
(v6,3,0,1.066667,0.4,1.6,0.4,7,0,8,0)
(v6,4,0,1.6,0.4,1.6,1.2,7,0,8,0)
(v6,5,0,1.6,1.2,0.4,1.2,7,0,8,0)
(v6,6,0,0.4,1.2,0.4,1.066667,7,0,8,0)
(p8,8,8,5,7,127
(g9,8,0
(g9,8,0
(v6,8,65536,2.4,0.4,6,0.4,7,0,8,0)
(v6,9,65536,6,0.4,6,4.8,7,0,8,0)
(v6,10,65536,6,4.8,2.4,4.8,7,0,8,0)
(v6,11,65536,2.4,4.8,2.4,0.4,7,0,8,0))))
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,2.8,1.2,4.4,1.2,7,0,8,0)
(v6,14,65536,4.4,1.2,4.4,3.6,7,0,8,0)
(v6,15,65536,4.4,3.6,2.8,3.6,7,0,8,0)
(v6,16,65536,2.8,3.6,2.8,1.2,7,0,8,0))))
(e8,17,0,4.8,0.933333,5.733333,0.933333,4.8,1.466667,7,127,5,7,0,8,0)
(e8,18,0,4.8,2.133333,5.733333,2.133333,4.8,2.666667,7,127,5,7,0,8,0)
(v6,19,0,4.8,1.2,4.8,2.4,7,0,8,0)
(v6,20,0,5.733333,1.2,5.733333,2.4,7,0,8,0)
(v6,21,0,5.2,2.666667,5.2,3.2,7,0,8,0)
(v6,22,0,5.2,3.2,4.4,3.2,7,0,8,0)
(v6,23,0,3.6,1.2,3.6,0.8,7,0,8,0)
(v6,24,0,3.6,0.8,1.6,0.8,7,0,8,0)
(v6,25,0,0.6,1.2,0.6,2,7,0,8,0)
(v6,26,0,0.6,2,2.8,2,7,0,8,0)
(t14,27,0,1.066667,0.733333,0,7,0,0,,wst:swiss10,User)
(t14,28,0,1.066667,0.866667,0,7,0,0,,wst:swiss10,CRT)
(t14,29,0,1.066667,1,0,7,0,0,,wst:swiss10,and)
(t14,30,0,0.933333,1.133333,0,7,0,0,,wst:swiss10,Keyboard)
(t14,31,0,4.266667,4.666667,0,7,0,0,,wst:swiss14,PC\ or\ Workstation)
(t14,32,0,2.933333,1.466667,0,7,0,0,,wst:swiss10,Ada\ LRM\ Reader)
(t14,33,0,4.866667,1.733333,0,7,0,0,,wst:swiss10,Disks:)
(t14,34,0,2.466667,0.666667,0,7,0,0,,wst:swiss10,VT100\ Commands\ and\ Text)
(t14,35,0,1.2,1.866667,0,7,0,0,,wst:swiss10,Text\ Lines)
(t14,36,0,4.866667,3.4,0,7,0,0,,wst:swiss10,Citation\ Info)
(v6,37,0,4.4,2.133333,4.8,2.133333,7,0,8,0)
(t14,38,0,4.466667,2.466667,0,7,0,0,,wst:swiss10,Print)
(t14,39,0,4.466667,2.6,0,7,0,0,,wst:swiss10,Log)
(t14,40,0,4.466667,2.733333,0,7,0,0,,wst:swiss10,File)
(t14,41,0,4.466667,2.866667,0,7,0,0,,wst:swiss10,Entries)
(t14,42,0,4.933333,1.866667,0,7,0,0,,wst:swiss10,Citations)
(t14,43,0,4.933333,2,0,7,0,0,,wst:swiss10,Print\ Log\ File)
(g9,44,8
(v6,44,0,2.8,2,2.6,2,7,0,8,0)
(g9,46,1025
(p8,46,0,5,7,0
(g9,46,0
(g9,46,0
(v6,46,0,2.649648,2.054725,2.8,2,7,0,8,0)
(v6,47,0,2.8,2,2.649648,1.945277,7,0,8,0)
(v6,48,0,2.649648,1.945277,2.681722,2,7,0,8,0)
(v6,49,0,2.681722,2,2.649648,2.054725,7,0,8,0))))
(v6,50,25167905,2.8,2,2.8,2,7,127,8,0)))
(g9,51,8
(v6,51,0,4.4,3.2,4.6,3.2,7,0,8,0)
(g9,53,1025
(p8,53,0,5,7,0
(g9,53,0
(g9,53,0
(v6,53,0,4.550352,3.145275,4.4,3.2,7,0,8,0)
(v6,54,0,4.4,3.2,4.550352,3.254723,7,0,8,0)
(v6,55,0,4.550352,3.254723,4.518278,3.2,7,0,8,0)
(v6,56,0,4.518278,3.2,4.550352,3.145275,7,0,8,0))))
(v6,57,25167905,4.4,3.2,4.4,3.2,7,127,8,0)))
(g9,58,8
(v6,58,0,4.8,2.133333,4.6,2.133333,7,0,8,0)
(g9,60,1025
(p8,60,0,5,7,0
(g9,60,0
(g9,60,0
(v6,60,0,4.649648,2.188058,4.8,2.133333,7,0,8,0)
(v6,61,0,4.8,2.133333,4.649648,2.07861,7,0,8,0)
(v6,62,0,4.649648,2.07861,4.681722,2.133333,7,0,8,0)
(v6,63,0,4.681722,2.133333,4.649648,2.188058,7,0,8,0))))
(v6,64,25167905,4.8,2.133333,4.8,2.133333,7,127,8,0)))
(g9,65,8
(v6,65,0,1.6,0.8,1.8,0.8,7,0,8,0)
(g9,67,1025
(p8,67,0,5,7,0
(g9,67,0
(g9,67,0
(v6,67,0,1.750352,0.745275,1.6,0.8,7,0,8,0)
(v6,68,0,1.6,0.8,1.750352,0.854723,7,0,8,0)
(v6,69,0,1.750352,0.854723,1.718278,0.8,7,0,8,0)
(v6,70,0,1.718278,0.8,1.750352,0.745275,7,0,8,0))))
(v6,71,25167905,1.6,0.8,1.6,0.8,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
VT100 commands are sent to the user's VT100-compatible CRT to clear
screen and position cursor. Text sent to the user's CRT is simply
displayed. The SUM shows the two basic screen displays.
<paragraph>
The text lines sent from the user's keyboard are strings of ASCII
characters terminated by a newline. The operating system's or shell's
input line editor allows the user to edit these lines before the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> "sees"
them.
<paragraph>
Entries in the Print Log File are created by the user when he issues
the PRINT and PS commands (described in the SUM). An entry created
by the PRINT command is the ASCII text of an entire citation. An
entry created by the PS command is the ASCII text of the current screen.
<paragraph>
The citation comes from files on disk. These citations include the
numbered paragraphs, the table of contents, the foreward, the postscript,
and the index. The HELP and ABOUT screens are also viewed as "citations."
<subsubsection>
<|,4><"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.1.1.><End Sub>
<F0> CSCI architecture
<paragraph>
The <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>
CSCI consists of the following CSCs:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> The LRM_Reader, the mainline procedure; this is one of the three
active tasks in the CSCI
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> The MAKE_DAF procedure, which reads the *.doc files that contain
the text of the Ada LRM and creates a corresponding set of *.daf files
(DAF stands for Direct Access File); this is one of the three active
tasks in the CSCI
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> The MAKE_CIT procedure, which reads the *.daf files and creates
a CIT.ADA file which contains the enumeration type CITATION_ID (that
contains values corresponding to every citation label in all the *.daf
files) and a Citation_Location_Vector (CLV) array that contains a
mapping between each citation and a record of data that contains an
ID of the corresponding *.daf file, the starting line number of the
citation in the *.daf file, and the ending line number of the citation
in the *.daf file; this is one of the three active tasks in the CSCI
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> The Citation_Definition package, which contains the definition
of the type CITATION_ID and the CLV array; the type CITATION_ID is
an enumerated type that contains names for each citation (such as
C4P1 for Chapter 4 Section 1) and the CLV array contains records associated
with each CITATION_ID value that identifies the *.daf file containing
the citation and the starting and ending record numbers in the *.daf
file of the citation; the Citation_Definition package is created by
the MAKE_CIT procedure
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> The SYSDEP package, which contains all the System Dependency
information
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 6.><End Sub>
<F0> The DAF_Handler package, which is used to create and access the
information in the *.daf files
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 7.><End Sub>
<F0> The Print_Log_Handler package, which is used to create and write
information to the Print_Log file
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 8.><End Sub>
<F0> The Screen_Display_Controller package, which is used to display
information to the user's screen
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 9.><End Sub>
<F0> The Command_Dispatcher package, which is used to start the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> and
interface with the user's keyboard
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 10.><End Sub>
<F0> The Citation_Handler package, which is used by the Command_Dispatcher
to access the desired citation
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 11.><End Sub>
<F0> The Primitive_Citation_Handler package, which provides low-level
functions for accessing citations and is used by Citation_Handler,
Screen_Display_Controller, and Print_Log_Handler
<paragraph>
Of these CSCs, the first three are active objects (tasks) and the
rest are definitions (Citation_Definition and SYSDEP) and passive
objects which are invoked by the three active objects:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2 inches,
Diagram =
V6,
(g9,1,0
(g9,1,0
(v6,1,0,0.8,0.133333,1.6,0.133333,7,0,8,0)
(v6,2,0,1.6,0.133333,1.2,0.933333,7,0,8,0)
(v6,3,0,1.2,0.933333,0.4,0.933333,7,0,8,0)
(v6,4,0,0.4,0.933333,0.8,0.133333,7,0,8,0))
(g9,5,0
(v6,5,0,0.8,1.133333,1.6,1.133333,7,0,8,0)
(v6,6,0,1.6,1.133333,1.2,1.933333,7,0,8,0)
(v6,7,0,1.2,1.933333,0.4,1.933333,7,0,8,0)
(v6,8,0,0.4,1.933333,0.8,1.133333,7,0,8,0))
(g9,9,0
(v6,9,0,2.4,0.266667,2.4,0.8,7,0,8,0)
(v6,10,0,2.4,0.266667,3.2,0.266667,7,0,8,0)
(v6,11,0,3.2,0.266667,3.2,0.6,7,0,8,0)
(v6,12,0,2.4,0.8,2.8,0.8,7,0,8,0)
(v6,13,0,2.8,0.8,3.2,0.6,7,0,8,0))
(g9,14,0
(v6,14,0,2.4,1.266667,2.4,1.8,7,0,8,0)
(v6,15,0,2.4,1.266667,3.2,1.266667,7,0,8,0)
(v6,16,0,3.2,1.266667,3.2,1.6,7,0,8,0)
(v6,17,0,2.4,1.8,2.8,1.8,7,0,8,0)
(v6,18,0,2.8,1.8,3.2,1.6,7,0,8,0))
(v6,19,0,1.4,0.533333,2.4,0.533333,7,0,8,0)
(v6,20,0,2.4,0.666667,1.466667,0.666667,7,0,8,0)
(v6,21,0,1.466667,0.666667,1.466667,1.133333,7,0,8,0)
(v6,22,0,1.466667,1.4,2.4,1.4,7,0,8,0)
(v6,23,0,3.2,0.466667,3.6,0.466667,7,0,8,0)
(v6,24,0,3.6,0.466667,3.6,0.8,7,0,8,0)
(v6,25,0,3.2,1.466667,3.6,1.466667,7,0,8,0)
(v6,26,0,3.6,1.466667,3.6,1.2,7,0,8,0)
(v6,27,0,4.533333,0.533333,5.533333,0.533333,7,0,8,0)
(v6,28,0,5.533333,0.533333,5.133333,1.333333,7,0,8,0)
(v6,29,0,5.133333,1.333333,4.133333,1.333333,7,0,8,0)
(v6,30,0,4.133333,1.333333,4.533333,0.533333,7,0,8,0)
(v6,31,0,3.6,1.2,4.2,1.2,7,0,8,0)
(v6,32,0,3.6,0.8,4.4,0.8,7,0,8,0)
(t14,33,0,0.8,0.4,0,7,0,0,,wst:swiss10,Make_DAF)
(t14,34,0,2.466667,0.533333,0,7,0,0,,wst:swiss10,*.daf\ Files)
(t14,35,0,0.733333,1.466667,0,7,0,0,,wst:swiss10,Make_Cit)
(t14,36,0,2.533333,1.533333,0,7,0,0,,wst:swiss10,CIT.ADA)
(t14,37,0,4.466667,0.933333,0,7,0,0,,wst:swiss10,LRM_Reader)
(t14,38,0,1.6,0.466667,0,7,0,0,,wst:swiss10,Creates)
(t14,39,0,1.6,1.333333,0,7,0,0,,wst:swiss10,Creates)
(t14,40,0,1.6,0.866667,0,7,0,0,,wst:swiss10,Are\ Used\ by)
(t14,41,0,3.666667,0.6,0,7,0,0,,wst:swiss10,Are\ Used\ by)
(t14,42,0,3.4,1.666667,0,7,0,0,,wst:swiss10,Is\ Incorporated\ into)
(g9,43,8
(v6,43,0,2.4,0.533333,2.2,0.533333,7,0,8,0)
(g9,45,1025
(p8,45,0,5,7,0
(g9,45,0
(g9,45,0
(v6,45,0,2.249648,0.588058,2.4,0.533333,7,0,8,0)
(v6,46,0,2.4,0.533333,2.249648,0.47861,7,0,8,0)
(v6,47,0,2.249648,0.47861,2.281722,0.533333,7,0,8,0)
(v6,48,0,2.281722,0.533333,2.249648,0.588058,7,0,8,0))))
(v6,49,25167905,2.4,0.533333,2.4,0.533333,7,127,8,0)))
(g9,50,8
(v6,50,0,1.466667,1.133333,1.466667,0.933333,7,0,8,0)
(g9,52,1025
(p8,52,0,5,7,0
(g9,52,0
(g9,52,0
(v6,52,0,1.411942,0.982981,1.466667,1.133333,7,0,8,0)
(v6,53,0,1.466667,1.133333,1.52139,0.982981,7,0,8,0)
(v6,54,0,1.52139,0.982981,1.466667,1.015055,7,0,8,0)
(v6,55,0,1.466667,1.015055,1.411942,0.982981,7,0,8,0))))
(v6,56,25167905,1.466667,1.133333,1.466667,1.133333,7,127,8,0)))
(g9,57,8
(v6,57,0,2.4,1.4,2.2,1.4,7,0,8,0)
(g9,59,1025
(p8,59,0,5,7,0
(g9,59,0
(g9,59,0
(v6,59,0,2.249648,1.454725,2.4,1.4,7,0,8,0)
(v6,60,0,2.4,1.4,2.249648,1.345277,7,0,8,0)
(v6,61,0,2.249648,1.345277,2.281722,1.4,7,0,8,0)
(v6,62,0,2.281722,1.4,2.249648,1.454725,7,0,8,0))))
(v6,63,25167905,2.4,1.4,2.4,1.4,7,127,8,0)))
(g9,64,8
(v6,64,0,4.2,1.2,4,1.2,7,0,8,0)
(g9,66,1025
(p8,66,0,5,7,0
(g9,66,0
(g9,66,0
(v6,66,0,4.049648,1.254725,4.2,1.2,7,0,8,0)
(v6,67,0,4.2,1.2,4.049648,1.145277,7,0,8,0)
(v6,68,0,4.049648,1.145277,4.081722,1.2,7,0,8,0)
(v6,69,0,4.081722,1.2,4.049648,1.254725,7,0,8,0))))
(v6,70,25167905,4.2,1.2,4.2,1.2,7,127,8,0)))
(g9,71,8
(v6,71,0,4.4,0.8,4.2,0.8,7,0,8,0)
(g9,73,1025
(p8,73,0,5,7,0
(g9,73,0
(g9,73,0
(v6,73,0,4.249648,0.854725,4.4,0.8,7,0,8,0)
(v6,74,0,4.4,0.8,4.249648,0.745277,7,0,8,0)
(v6,75,0,4.249648,0.745277,4.281722,0.8,7,0,8,0)
(v6,76,0,4.281722,0.8,4.249648,0.854725,7,0,8,0))))
(v6,77,25167905,4.4,0.8,4.4,0.8,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
<|,5>In addition, the following reusable CSCs provide some needed
functionality:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> Package CLI (part of CS Parts), which is a Command Line Interface
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Package Console (part of CS Parts), which is a VT100 interface
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> Packages Input_File and Output_File (part of CS Parts), which
support ASCII text file manipulation
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> Package System (part of the standard Ada environment), which
provides address manipulation
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> Package Direct_IO (part of the standard Ada environment), which
provides direct access file manipulation
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 6.><End Sub>
<F0> Procedure Unchecked_Conversion (part of the standard Ada environment),
which provides the ability to map addresses to pointers
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.1.1.><End Sub>
<F0> Object Interaction Diagram for the LRM_Reader Task
<paragraph>
The following Object Interaction Diagram (OID) shows the principal
CSC (the LRM_Reader) and the objects (also CSCs) with which it interfaces.
Note that only the pertinent parts of the object interfaces are shown,
as opposed to the entirety of the object interfaces.<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5.50 inches,
Diagram =
V6,
(g9,1,0
(g9,1,0
(v6,1,0,2.933334,1.066667,2.133333,2.266667,7,0,8,0)
(v6,2,0,2.133333,2.266667,3.333333,2.266667,7,0,8,0)
(v6,3,0,3.333333,2.266667,4.133333,1.066667,7,0,8,0)
(v6,4,0,4.133333,1.066667,2.933334,1.066667,7,0,8,0))
(p8,6,8,5,5,127
(g9,6,0
(g9,6,0
(v6,6,65536,0.066667,0.4,1.4,0.4,7,0,8,0)
(v6,7,65536,1.4,0.4,1.4,2.333333,7,0,8,0)
(v6,8,65536,1.4,2.333333,0.066667,2.333333,7,0,8,0)
(v6,9,65536,0.066667,2.333333,0.066667,0.4,7,0,8,0))))
(p8,11,8,5,5,127
(g9,11,0
(g9,11,0
(v6,11,65536,0.066667,2.466667,1.866667,2.466667,7,0,8,0)
(v6,12,65536,1.866667,2.466667,1.866667,5.2,7,0,8,0)
(v6,13,65536,1.866667,5.2,0.066667,5.2,7,0,8,0)
(v6,14,65536,0.066667,5.2,0.066667,2.466667,7,0,8,0))))
(p8,16,8,5,5,127
(g9,16,0
(g9,16,0
(v6,16,65536,3.733334,3.6,6.266667,3.6,7,0,8,0)
(v6,17,65536,6.266667,3.6,6.266667,5.133334,7,0,8,0)
(v6,18,65536,6.266667,5.133334,3.733334,5.133334,7,0,8,0)
(v6,19,65536,3.733334,5.133334,3.733334,3.6,7,0,8,0))))
(p8,21,8,5,5,127
(g9,21,0
(g9,21,0
(v6,21,65536,4.866667,0.333333,6.2,0.333333,7,0,8,0)
(v6,22,65536,6.2,0.333333,6.2,1.066667,7,0,8,0)
(v6,23,65536,6.2,1.066667,4.866667,1.066667,7,0,8,0)
(v6,24,65536,4.866667,1.066667,4.866667,0.333333,7,0,8,0))))
(p8,26,8,5,5,127
(g9,26,0
(g9,26,0
(v6,26,65536,4.333334,2.2,5.866667,2.2,7,0,8,0)
(v6,27,65536,5.866667,2.2,5.866667,3.199999,7,0,8,0)
(v6,28,65536,5.866667,3.199999,4.333334,3.199999,7,0,8,0)
(v6,29,65536,4.333334,3.199999,4.333334,2.2,7,0,8,0))))
(t14,30,0,5,0.533333,0,7,0,0,,wst:swiss10,Citation_Handler)
(t14,31,0,0.133333,0.6,0,7,0,0,,wst:swiss10,CLI)
(t14,32,0,0.2,2.733333,0,7,0,0,,wst:swiss10,Command_Dispatcher)
(t14,33,0,4.466667,2.4,0,7,0,0,,wst:swiss10,Print_Log_Handler)
(t14,34,0,3.933334,3.866667,0,7,0,0,,wst:swiss10,Screen_Display_Controller)
(t14,35,0,3,1.4,0,7,0,0,,wst:swiss10,LRM_Reader)
(v6,36,0,3.066667,1.066667,3.066667,0.8,7,0,8,0)
(v6,37,0,3.066667,0.8,1.4,0.8,7,0,8,0)
(v6,38,0,3.866667,1.066667,3.866667,0.8,7,0,8,0)
(v6,39,0,3.866667,0.8,4.866667,0.8,7,0,8,0)
(v6,40,0,2.266667,2.266667,2.266667,3.2,7,0,8,0)
(v6,41,0,2.933333,2.266667,2.933333,4.4,7,0,8,0)
(v6,42,0,3.066667,2.266667,3.066667,2.8,7,0,8,0)
(v6,43,0,3.066667,2.8,4.333334,2.8,7,0,8,0)
(p8,45,8,5,7,127
(g9,45,0
(g9,45,0
(v6,45,65536,1.4,0.6,0.4,0.6,7,0,8,0)
(v6,46,65536,0.4,0.6,0.4,1,7,0,8,0)
(v6,47,65536,0.4,1,1.4,1,7,0,8,0)
(v6,48,65536,1.4,1,1.4,0.6,7,0,8,0))))
(p8,50,8,5,7,127
(g9,50,0
(g9,50,0
(v6,50,65536,1.4,1.2,0.4,1.2,7,0,8,0)
(v6,51,65536,0.4,1.2,0.4,1.6,7,0,8,0)
(v6,52,65536,0.4,1.6,1.4,1.6,7,0,8,0)
(v6,53,65536,1.4,1.6,1.4,1.2,7,0,8,0))))
(p8,55,8,5,7,127
(g9,55,0
(g9,55,0
(v6,55,65536,1.4,1.8,0.4,1.8,7,0,8,0)
(v6,56,65536,0.4,1.8,0.4,2.2,7,0,8,0)
(v6,57,65536,0.4,2.2,1.4,2.2,7,0,8,0)
(v6,58,65536,1.4,2.2,1.4,1.8,7,0,8,0))))
(t14,59,0,0.533333,0.866667,0,7,0,0,,wst:swiss10,Initialize)
(t14,60,0,0.533333,1.466667,0,7,0,0,,wst:swiss10,ArgC)
(t14,61,0,0.533333,2.066667,0,7,0,0,,wst:swiss10,ArgV)
(v6,62,0,2.707693,1.405129,1.4,1.4,7,0,8,0)
(v6,63,0,2.307692,2.005129,1.4,2,7,0,8,0)
(t14,64,0,1.6,1.133333,0,7,0,0,,wst:swiss10,Argument\ Count)
(t14,65,0,1.466667,0.533333,0,7,0,0,,wst:swiss10,Program\ Name)
(t14,66,0,2.666667,0.533333,0,7,0,0,,wst:swiss10,Prompt)
(t14,67,0,1.6,1.733333,0,7,0,0,,wst:swiss10,First\ Citation)
(p8,69,8,5,7,127
(g9,69,0
(g9,69,0
(v6,69,65536,0.666667,4.666667,1.866667,4.666667,7,0,8,0)
(v6,70,65536,1.866667,4.666667,1.866667,5.066667,7,0,8,0)
(v6,71,65536,1.866667,5.066667,0.666667,5.066667,7,0,8,0)
(v6,72,65536,0.666667,5.066667,0.666667,4.666667,7,0,8,0))))
(t14,73,0,0.733334,4.933333,0,7,0,0,,wst:swiss10,Convert_Citation)
(t14,74,0,2,5.266667,0,7,0,0,,wst:swiss10,First\ Citation)
(p8,76,8,5,7,127
(g9,76,0
(g9,76,0
(v6,76,65536,4.866667,0.6,5.933334,0.6,7,0,8,0)
(v6,77,65536,5.933334,0.6,5.933334,1,7,0,8,0)
(v6,78,65536,5.933334,1,4.866667,1,7,0,8,0)
(v6,79,65536,4.866667,1,4.866667,0.6,7,0,8,0))))
(t14,80,0,4.933334,0.8,0,7,0,0,,wst:swiss10,Close_All_)
(t14,81,0,4.933334,0.933333,0,7,0,0,,wst:swiss10,Open_Citations)
(p8,83,8,5,7,127
(g9,83,0
(g9,83,0
(v6,83,65536,4.333334,2.573333,5.466667,2.573333,7,0,8,0)
(v6,84,65536,5.466667,2.573333,5.466667,3,7,0,8,0)
(v6,85,65536,5.466667,3,4.333334,3,7,0,8,0)
(v6,86,65536,4.333334,3,4.333334,2.573333,7,0,8,0))))
(t14,87,0,4.399999,2.866667,0,7,0,0,,wst:swiss10,Close_Print_Log)
(p8,89,8,5,7,127
(g9,89,0
(g9,89,0
(v6,89,65536,3.733334,4.133334,5.866667,4.133334,7,0,8,0)
(v6,90,65536,5.866667,4.133334,5.866667,4.600001,7,0,8,0)
(v6,91,65536,5.866667,4.600001,3.733334,4.600001,7,0,8,0)
(v6,92,65536,3.733334,4.600001,3.733334,4.133334,7,0,8,0))))
(t14,93,0,3.866667,4.400002,0,7,0,0,,wst:swiss10,Show_Error)
(v6,94,0,2.933333,4.4,3.733334,4.4,7,0,8,0)
(t14,95,0,3.200002,3.466667,0,7,0,0,,wst:swiss10,UNEXPECTED_ERROR)
(v6,96,0,2.266667,3.2,1.866666,3.200001,7,0,8,0)
(v6,97,0,2.466667,2.266667,2.466667,4.2,7,0,8,0)
(v6,98,0,2.466667,4.2,1.866667,4.2,7,0,8,0)
(p8,100,8,5,7,127
(g9,100,0
(g9,100,0
(v6,100,65536,1.866667,3,0.266667,3,7,0,8,0)
(v6,101,65536,0.266667,3,0.266667,3.466667,7,0,8,0)
(v6,102,65536,0.266667,3.466667,1.866667,3.466667,7,0,8,0)
(v6,103,65536,1.866667,3.466667,1.866667,3,7,0,8,0))))
(p8,105,8,5,7,127
(g9,105,0
(g9,105,0
(v6,105,65536,1.866667,3.933333,0.266667,3.933333,7,0,8,0)
(v6,106,65536,0.266667,3.933333,0.266667,4.4,7,0,8,0)
(v6,107,65536,0.266667,4.4,1.866667,4.4,7,0,8,0)
(v6,108,65536,1.866667,4.4,1.866667,3.933333,7,0,8,0))))
(t14,109,0,0.4,3.266667,0,7,0,0,,wst:swiss10,View_Help)
(t14,110,0,0.4,4.2,0,7,0,0,,wst:swiss10,Dispatch)
(t14,111,0,1.933334,4.6,0,7,0,0,,wst:swiss10,CITATION_ID)
(v6,112,0,2.8,2.266667,2.8,4.866667,7,0,8,0)
(v6,113,0,2.8,4.866667,1.866667,4.866667,7,0,8,0)
(t14,114,0,2.866667,5.133333,0,7,0,0,,wst:swiss10,CITATION_ID)
(g9,115,8
(v6,115,0,1.666667,0.666667,2.066667,0.666667,7,0,8,0)
(g9,117,1025
(p8,117,0,5,7,0
(g9,117,0
(g9,117,8
(v6,117,25165856,1.797308,0.666665,1.797308,0.666667,5,127,8,0)
(v6,118,0,1.797308,0.666667,1.821217,0.708078,7,0,8,0)
(v6,119,0,1.821217,0.708078,1.666667,0.666667,7,0,8,0)
(v6,120,0,1.666667,0.666667,1.821217,0.625255,7,0,8,0)
(v6,121,0,1.821217,0.625255,1.797308,0.666665,7,0,8,0))))
(v6,122,25167905,1.666667,0.666667,1.666667,0.666667,7,127,8,0))
(g9,123,1033
(e8,123,0,1.999999,0.733333,2.133333,0.733333,1.999999,0.6,0,0,5,7,0,8,0)
(v6,124,25167905,2.066666,0.666667,2.066666,0.666667,7,127,8,0)))
(g9,125,8
(v6,125,0,2.666667,0.666667,3.066667,0.666667,7,0,8,0)
(g9,127,1025
(p8,127,0,5,7,0
(g9,127,0
(g9,127,8
(v6,127,25165856,2.797308,0.666665,2.797308,0.666667,5,127,8,0)
(v6,128,0,2.797308,0.666667,2.821217,0.708078,7,0,8,0)
(v6,129,0,2.821217,0.708078,2.666667,0.666667,7,0,8,0)
(v6,130,0,2.666667,0.666667,2.821217,0.625255,7,0,8,0)
(v6,131,0,2.821217,0.625255,2.797308,0.666665,7,0,8,0))))
(v6,132,25167905,2.666667,0.666667,2.666667,0.666667,7,127,8,0))
(g9,133,1033
(e8,133,0,2.999999,0.733333,3.133333,0.733333,2.999999,0.6,0,0,5,7,0,8,0)
(v6,134,25167905,3.066666,0.666667,3.066666,0.666667,7,127,8,0)))
(g9,135,8
(v6,135,0,1.4,0.8,1.6,0.8,7,0,8,0)
(g9,137,1025
(p8,137,0,5,7,0
(g9,137,0
(g9,137,0
(v6,137,0,1.550352,0.745275,1.4,0.8,7,0,8,0)
(v6,138,0,1.4,0.8,1.550352,0.854723,7,0,8,0)
(v6,139,0,1.550352,0.854723,1.518278,0.8,7,0,8,0)
(v6,140,0,1.518278,0.8,1.550352,0.745275,7,0,8,0))))
(v6,141,25167905,1.4,0.8,1.4,0.8,7,127,8,0)))
(g9,142,8
(v6,142,0,2.333333,1.266667,1.933333,1.266667,7,0,8,0)
(g9,144,1025
(p8,144,0,5,7,0
(g9,144,0
(g9,144,8
(v6,144,25165856,2.202693,1.266668,2.202693,1.266667,5,127,8,0)
(v6,145,0,2.202693,1.266667,2.178784,1.225256,7,0,8,0)
(v6,146,0,2.178784,1.225256,2.333333,1.266667,7,0,8,0)
(v6,147,0,2.333333,1.266667,2.178784,1.308079,7,0,8,0)
(v6,148,0,2.178784,1.308079,2.202693,1.266668,7,0,8,0))))
(v6,149,25167905,2.333333,1.266667,2.333333,1.266667,7,127,8,0))
(g9,150,1033
(e8,150,0,2,1.2,1.866667,1.2,2,1.333333,0,0,5,7,0,8,0)
(v6,151,25167905,1.933333,1.266667,1.933333,1.266667,7,127,8,0)))
(g9,152,8
(v6,152,0,2.2,1.866667,1.8,1.866667,7,0,8,0)
(g9,154,1025
(p8,154,0,5,7,0
(g9,154,0
(g9,154,8
(v6,154,25165856,2.06936,1.866668,2.06936,1.866667,5,127,8,0)
(v6,155,0,2.06936,1.866667,2.045451,1.825256,7,0,8,0)
(v6,156,0,2.045451,1.825256,2.2,1.866667,7,0,8,0)
(v6,157,0,2.2,1.866667,2.045451,1.908079,7,0,8,0)
(v6,158,0,2.045451,1.908079,2.06936,1.866668,7,0,8,0))))
(v6,159,25167905,2.2,1.866667,2.2,1.866667,7,127,8,0))
(g9,160,1033
(e8,160,0,1.866667,1.8,1.733333,1.8,1.866667,1.933333,0,0,5,7,0,8,0)
(v6,161,25167905,1.8,1.866667,1.8,1.866667,7,127,8,0)))
(g9,162,8
(v6,162,0,1.4,1.4,1.6,1.4,7,0,8,0)
(g9,164,1025
(p8,164,0,5,7,0
(g9,164,0
(g9,164,0
(v6,164,0,1.550352,1.345275,1.4,1.4,7,0,8,0)
(v6,165,0,1.4,1.4,1.550352,1.454723,7,0,8,0)
(v6,166,0,1.550352,1.454723,1.518278,1.4,7,0,8,0)
(v6,167,0,1.518278,1.4,1.550352,1.345275,7,0,8,0))))
(v6,168,25167905,1.4,1.4,1.4,1.4,7,127,8,0)))
(g9,169,8
(v6,169,0,1.399993,2.00113,1.599993,2.00113,7,0,8,0)
(g9,171,1025
(p8,171,0,5,7,0
(g9,171,0
(g9,171,0
(v6,171,0,1.550346,1.946405,1.399993,2.00113,7,0,8,0)
(v6,172,0,1.399993,2.00113,1.550346,2.055854,7,0,8,0)
(v6,173,0,1.550346,2.055854,1.518271,2.00113,7,0,8,0)
(v6,174,0,1.518271,2.00113,1.550346,1.946405,7,0,8,0))))
(v6,175,25167905,1.399993,2.00113,1.399993,2.00113,7,127,8,0)))
(g9,176,8
(v6,176,0,4.866667,0.8,4.666667,0.8,7,0,8,0)
(g9,178,1025
(p8,178,0,5,7,0
(g9,178,0
(g9,178,0
(v6,178,0,4.716313,0.854725,4.866667,0.8,7,0,8,0)
(v6,179,0,4.866667,0.8,4.716313,0.745277,7,0,8,0)
(v6,180,0,4.716313,0.745277,4.748389,0.8,7,0,8,0)
(v6,181,0,4.748389,0.8,4.716313,0.854725,7,0,8,0))))
(v6,182,25167905,4.866667,0.8,4.866667,0.8,7,127,8,0)))
(g9,183,8
(v6,183,0,4.333333,2.8,4.133333,2.8,7,0,8,0)
(g9,185,1025
(p8,185,0,5,7,0
(g9,185,0
(g9,185,0
(v6,185,0,4.182981,2.854725,4.333333,2.8,7,0,8,0)
(v6,186,0,4.333333,2.8,4.182981,2.745277,7,0,8,0)
(v6,187,0,4.182981,2.745277,4.215055,2.8,7,0,8,0)
(v6,188,0,4.215055,2.8,4.182981,2.854725,7,0,8,0))))
(v6,189,25167905,4.333333,2.8,4.333333,2.8,7,127,8,0)))
(g9,190,8
(v6,190,0,3.733333,4.4,3.533333,4.4,7,0,8,0)
(g9,192,1025
(p8,192,0,5,7,0
(g9,192,0
(g9,192,0
(v6,192,0,3.582981,4.454725,3.733333,4.4,7,0,8,0)
(v6,193,0,3.733333,4.4,3.582981,4.345277,7,0,8,0)
(v6,194,0,3.582981,4.345277,3.615055,4.4,7,0,8,0)
(v6,195,0,3.615055,4.4,3.582981,4.454725,7,0,8,0))))
(v6,196,25167905,3.733333,4.4,3.733333,4.4,7,127,8,0)))
(g9,197,8
(v6,197,0,3.066667,3.6,3.066667,3.2,7,0,8,0)
(g9,199,1025
(p8,199,0,5,7,0
(g9,199,0
(g9,199,8
(v6,199,25165856,3.066665,3.469359,3.066667,3.469359,5,127,8,0)
(v6,200,0,3.066667,3.469359,3.108078,3.44545,7,0,8,0)
(v6,201,0,3.108078,3.44545,3.066667,3.599999,7,0,8,0)
(v6,202,0,3.066667,3.599999,3.025255,3.44545,7,0,8,0)
(v6,203,0,3.025255,3.44545,3.066665,3.469359,7,0,8,0))))
(v6,204,25167905,3.066667,3.599999,3.066667,3.599999,7,127,8,0))
(g9,205,1033
(e8,205,0,3.133333,3.266667,3.133333,3.133333,3,3.266667,0,0,5,7,0,8,0)
(v6,206,25167905,3.066667,3.200001,3.066667,3.200001,7,127,8,0)))
(g9,207,8
(v6,207,0,1.866666,3.200001,2.066666,3.200001,7,0,8,0)
(g9,209,1025
(p8,209,0,5,7,0
(g9,209,0
(g9,209,0
(v6,209,0,2.017018,3.145276,1.866666,3.200001,7,0,8,0)
(v6,210,0,1.866666,3.200001,2.017018,3.254724,7,0,8,0)
(v6,211,0,2.017018,3.254724,1.984944,3.200001,7,0,8,0)
(v6,212,0,1.984944,3.200001,2.017018,3.145276,7,0,8,0))))
(v6,213,25167905,1.866666,3.200001,1.866666,3.200001,7,127,8,0)))
(g9,214,8
(v6,214,0,1.866667,4.2,2.066667,4.2,7,0,8,0)
(g9,216,1025
(p8,216,0,5,7,0
(g9,216,0
(g9,216,0
(v6,216,0,2.017019,4.145275,1.866667,4.2,7,0,8,0)
(v6,217,0,1.866667,4.2,2.017019,4.254723,7,0,8,0)
(v6,218,0,2.017019,4.254723,1.984945,4.2,7,0,8,0)
(v6,219,0,1.984945,4.2,2.017019,4.145275,7,0,8,0))))
(v6,220,25167905,1.866667,4.2,1.866667,4.2,7,127,8,0)))
(g9,221,8
(v6,221,0,1.866667,4.866667,2.066667,4.866667,7,0,8,0)
(g9,223,1025
(p8,223,0,5,7,0
(g9,223,0
(g9,223,0
(v6,223,0,2.017019,4.811942,1.866667,4.866667,7,0,8,0)
(v6,224,0,1.866667,4.866667,2.017019,4.92139,7,0,8,0)
(v6,225,0,2.017019,4.92139,1.984945,4.866667,7,0,8,0)
(v6,226,0,1.984945,4.866667,2.017019,4.811942,7,0,8,0))))
(v6,227,25167905,1.866667,4.866667,1.866667,4.866667,7,127,8,0)))
(g9,228,8
(v6,228,0,2,4.333333,2.4,4.333333,7,0,8,0)
(g9,230,1025
(p8,230,0,5,7,0
(g9,230,0
(g9,230,8
(v6,230,25165856,2.130641,4.333332,2.130641,4.333333,5,127,8,0)
(v6,231,0,2.130641,4.333333,2.15455,4.374744,7,0,8,0)
(v6,232,0,2.15455,4.374744,2.000001,4.333333,7,0,8,0)
(v6,233,0,2.000001,4.333333,2.15455,4.291921,7,0,8,0)
(v6,234,0,2.15455,4.291921,2.130641,4.333332,7,0,8,0))))
(v6,235,25167905,2.000001,4.333333,2.000001,4.333333,7,127,8,0))
(g9,236,1033
(e8,236,0,2.333333,4.4,2.466667,4.399999,2.333333,4.266667,0,0,5,7,0,8,0)
(v6,237,25167905,2.399999,4.333333,2.399999,4.333333,7,127,8,0)))
(g9,238,8
(v6,238,0,2.066667,5,2.466667,5,7,0,8,0)
(g9,240,1025
(p8,240,0,5,7,0
(g9,240,0
(g9,240,8
(v6,240,25165856,2.197308,4.999998,2.197308,5,5,127,8,0)
(v6,241,0,2.197308,5,2.221217,5.041411,7,0,8,0)
(v6,242,0,2.221217,5.041411,2.066667,5,7,0,8,0)
(v6,243,0,2.066667,5,2.221217,4.958588,7,0,8,0)
(v6,244,0,2.221217,4.958588,2.197308,4.999998,7,0,8,0))))
(v6,245,25167905,2.066667,5,2.066667,5,7,127,8,0))
(g9,246,1033
(e8,246,0,2.399999,5.066667,2.533333,5.066666,2.399999,4.933333,0,0,5,7,0,8
,0)
(v6,247,25167905,2.466666,5,2.466666,5,7,127,8,0)))
(g9,248,8
(v6,248,0,2.933333,4.466667,2.933333,4.866667,7,0,8,0)
(g9,250,1025
(p8,250,0,5,7,0
(g9,250,0
(g9,250,8
(v6,250,25165856,2.933335,4.597307,2.933333,4.597307,5,127,8,0)
(v6,251,0,2.933333,4.597307,2.891922,4.621216,7,0,8,0)
(v6,252,0,2.891922,4.621216,2.933333,4.466667,7,0,8,0)
(v6,253,0,2.933333,4.466667,2.974745,4.621216,7,0,8,0)
(v6,254,0,2.974745,4.621216,2.933335,4.597307,7,0,8,0))))
(v6,255,25167905,2.933333,4.466667,2.933333,4.466667,7,127,8,0))
(g9,256,1033
(e8,256,0,2.866667,4.8,2.866667,4.933333,3,4.8,0,0,5,7,0,8,0)
(v6,257,25167905,2.933333,4.866667,2.933333,4.866667,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<|,6><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.1.2.><End Sub>
<F0> Dependency Diagram for the LRM_Reader Task
<paragraph>
The following Dependency diagram (simplified Booch diagram) shows
the top-level view of the dependencies of the LRM_Reader CSC:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 7 inches,
Diagram =
V6,
(g9,1,0
(g9,1,0
(v6,1,0,3.066667,2.666667,2.266667,3.866667,7,0,8,0)
(v6,2,0,2.266667,3.866667,3.466667,3.866667,7,0,8,0)
(v6,3,0,3.466667,3.866667,4.266667,2.666667,7,0,8,0)
(v6,4,0,4.266667,2.666667,3.066667,2.666667,7,0,8,0))
(p8,6,8,5,5,127
(g9,6,0
(g9,6,0
(v6,6,65536,2.933333,0.2,4.266667,0.2,7,0,8,0)
(v6,7,65536,4.266667,0.2,4.266667,0.933333,7,0,8,0)
(v6,8,65536,4.266667,0.933333,2.933333,0.933333,7,0,8,0)
(v6,9,65536,2.933333,0.933333,2.933333,0.2,7,0,8,0))))
(p8,11,8,5,5,127
(g9,11,0
(g9,11,0
(v6,11,65536,0.2,2,1.533333,2,7,0,8,0)
(v6,12,65536,1.533333,2,1.533333,2.733333,7,0,8,0)
(v6,13,65536,1.533333,2.733333,0.2,2.733333,7,0,8,0)
(v6,14,65536,0.2,2.733333,0.2,2,7,0,8,0))))
(p8,16,8,5,5,127
(g9,16,0
(g9,16,0
(v6,16,65536,0.2,4.066667,1.933333,4.066667,7,0,8,0)
(v6,17,65536,1.933333,4.066667,1.933333,4.8,7,0,8,0)
(v6,18,65536,1.933333,4.8,0.2,4.8,7,0,8,0)
(v6,19,65536,0.2,4.8,0.2,4.066667,7,0,8,0))))
(p8,21,8,5,5,127
(g9,21,0
(g9,21,0
(v6,21,65536,1.933333,5.8,4.4,5.8,7,0,8,0)
(v6,22,65536,4.4,5.8,4.4,6.533333,7,0,8,0)
(v6,23,65536,4.4,6.533333,1.933333,6.533333,7,0,8,0)
(v6,24,65536,1.933333,6.533333,1.933333,5.8,7,0,8,0))))
(p8,26,8,5,5,127
(g9,26,0
(g9,26,0
(v6,26,65536,5,2,6.333333,2,7,0,8,0)
(v6,27,65536,6.333333,2,6.333333,2.733333,7,0,8,0)
(v6,28,65536,6.333333,2.733333,5,2.733333,7,0,8,0)
(v6,29,65536,5,2.733333,5,2,7,0,8,0))))
(p8,31,8,5,5,127
(g9,31,0
(g9,31,0
(v6,31,65536,4.466667,4.066667,6.333333,4.066667,7,0,8,0)
(v6,32,65536,6.333333,4.066667,6.333333,4.8,7,0,8,0)
(v6,33,65536,6.333333,4.8,4.466667,4.8,7,0,8,0)
(v6,34,65536,4.466667,4.8,4.466667,4.066667,7,0,8,0))))
(t14,35,0,3,0.466667,0,7,0,0,,wst:swiss10,Citatation_Definition)
(t14,36,0,5.133333,2.266667,0,7,0,0,,wst:swiss10,Citation_Handler)
(t14,37,0,0.333333,2.266667,0,7,0,0,,wst:swiss10,CLI)
(t14,38,0,0.333333,4.333333,0,7,0,0,,wst:swiss10,Command_Dispatcher)
(t14,39,0,4.6,4.333333,0,7,0,0,,wst:swiss10,Print_Log_Handler)
(t14,40,0,2.066667,6.066667,0,7,0,0,,wst:swiss10,Screen_Display_Controller)
(t14,41,0,3.133333,3,0,7,0,0,,wst:swiss10,LRM_Reader)
(v6,42,0,3.6,2.666667,3.6,0.933333,7,0,8,0)
(v6,43,0,3.2,2.666667,3.2,2.4,7,0,8,0)
(v6,44,0,3.2,2.4,1.533333,2.4,7,0,8,0)
(v6,45,0,4,2.666667,4,2.4,7,0,8,0)
(v6,46,0,4,2.4,5,2.4,7,0,8,0)
(v6,47,0,2.4,3.866667,2.4,4.4,7,0,8,0)
(v6,48,0,2.4,4.4,1.933333,4.4,7,0,8,0)
(v6,49,0,2.8,3.866667,2.8,5.8,7,0,8,0)
(v6,50,0,3.2,3.866667,3.2,4.4,7,0,8,0)
(v6,51,0,3.2,4.4,4.466667,4.4,7,0,8,0)
(g9,52,8
(v6,52,0,3.6,0.933333,3.6,1.133333,7,0,8,0)
(g9,54,1025
(p8,54,0,5,7,0
(g9,54,0
(g9,54,0
(v6,54,0,3.654725,1.083686,3.6,0.933333,7,0,8,0)
(v6,55,0,3.6,0.933333,3.545278,1.083686,7,0,8,0)
(v6,56,0,3.545278,1.083686,3.6,1.051611,7,0,8,0)
(v6,57,0,3.6,1.051611,3.654725,1.083686,7,0,8,0))))
(v6,58,25167905,3.6,0.933333,3.6,0.933333,7,127,8,0)))
(g9,59,8
(v6,59,0,2.8,5.8,2.8,5.6,7,0,8,0)
(g9,61,1025
(p8,61,0,5,7,0
(g9,61,0
(g9,61,0
(v6,61,0,2.745275,5.649648,2.8,5.8,7,0,8,0)
(v6,62,0,2.8,5.8,2.854723,5.649648,7,0,8,0)
(v6,63,0,2.854723,5.649648,2.8,5.681722,7,0,8,0)
(v6,64,0,2.8,5.681722,2.745275,5.649648,7,0,8,0))))
(v6,65,25167905,2.8,5.8,2.8,5.8,7,127,8,0)))
(g9,66,8
(v6,66,0,1.533333,2.4,1.733333,2.4,7,0,8,0)
(g9,68,1025
(p8,68,0,5,7,0
(g9,68,0
(g9,68,0
(v6,68,0,1.683686,2.345275,1.533333,2.4,7,0,8,0)
(v6,69,0,1.533333,2.4,1.683686,2.454722,7,0,8,0)
(v6,70,0,1.683686,2.454722,1.651611,2.4,7,0,8,0)
(v6,71,0,1.651611,2.4,1.683686,2.345275,7,0,8,0))))
(v6,72,25167905,1.533333,2.4,1.533333,2.4,7,127,8,0)))
(g9,73,8
(v6,73,0,1.933333,4.4,2.133333,4.4,7,0,8,0)
(g9,75,1025
(p8,75,0,5,7,0
(g9,75,0
(g9,75,0
(v6,75,0,2.083686,4.345275,1.933333,4.4,7,0,8,0)
(v6,76,0,1.933333,4.4,2.083686,4.454722,7,0,8,0)
(v6,77,0,2.083686,4.454722,2.051611,4.4,7,0,8,0)
(v6,78,0,2.051611,4.4,2.083686,4.345275,7,0,8,0))))
(v6,79,25167905,1.933333,4.4,1.933333,4.4,7,127,8,0)))
(g9,80,8
(v6,80,0,5,2.4,4.8,2.4,7,0,8,0)
(g9,82,1025
(p8,82,0,5,7,0
(g9,82,0
(g9,82,0
(v6,82,0,4.849648,2.454725,5,2.4,7,0,8,0)
(v6,83,0,5,2.4,4.849648,2.345277,7,0,8,0)
(v6,84,0,4.849648,2.345277,4.881722,2.4,7,0,8,0)
(v6,85,0,4.881722,2.4,4.849648,2.454725,7,0,8,0))))
(v6,86,25167905,5,2.4,5,2.4,7,127,8,0)))
(g9,87,8
(v6,87,0,4.466667,4.4,4.266667,4.4,7,0,8,0)
(g9,89,1025
(p8,89,0,5,7,0
(g9,89,0
(g9,89,0
(v6,89,0,4.316315,4.454725,4.466667,4.4,7,0,8,0)
(v6,90,0,4.466667,4.4,4.316315,4.345277,7,0,8,0)
(v6,91,0,4.316315,4.345277,4.348389,4.4,7,0,8,0)
(v6,92,0,4.348389,4.4,4.316315,4.454725,7,0,8,0))))
(v6,93,25167905,4.466667,4.4,4.466667,4.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph,
Begin New Page = yes>
<|,7>The key CSCs shown in this dependency diagram are:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> The LRM_Reader, the mainline procedure
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> The Citation_Definition package, which contains the definition
of the type CITATION_ID and the CLV (Citation_Location_Vector) array
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> Package CLI (part of CS Parts), which is a Command Line Interface
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> The Print_Log_Handler package, which is used to create and write
information to the Print_Log file
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> The Screen_Display_Controller package, which is used to display
information to the user's screen
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 6.><End Sub>
<F0> The Command_Dispatcher package, which is used to start the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> and
interface with the user's keyboard
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 7.><End Sub>
<F0> The Citation_Handler package, which is used by the Command_Dispatcher
to access the desired citation
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.1.3.><End Sub>
<F0> Dependency Diagram for the Make_DAF Task
<paragraph>
The following Dependency diagram (simplified Booch diagram) shows
the top-level view of the dependencies of the Make_DAF CSC:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(g9,1,0
(v6,1,0,2.133334,1.8,1.333333,3,7,0,8,0)
(v6,2,0,1.333333,3,2.533333,3,7,0,8,0)
(v6,3,0,2.533333,3,3.333333,1.8,7,0,8,0)
(v6,4,0,3.333333,1.8,2.133334,1.8,7,0,8,0))
(p8,6,8,5,5,127
(g9,6,0
(g9,6,0
(v6,6,65536,0.533333,0.4,1.866667,0.4,7,0,8,0)
(v6,7,65536,1.866667,0.4,1.866667,1.133333,7,0,8,0)
(v6,8,65536,1.866667,1.133333,0.533333,1.133333,7,0,8,0)
(v6,9,65536,0.533333,1.133333,0.533333,0.4,7,0,8,0))))
(p8,11,8,5,5,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.399999,0.4,4.733333,0.4,7,0,8,0)
(v6,12,65536,4.733333,0.4,4.733333,1.133333,7,0,8,0)
(v6,13,65536,4.733333,1.133333,3.399999,1.133333,7,0,8,0)
(v6,14,65536,3.399999,1.133333,3.399999,0.4,7,0,8,0))))
(p8,16,8,5,5,127
(g9,16,0
(g9,16,0
(v6,16,65536,3.399999,3.2,4.733333,3.2,7,0,8,0)
(v6,17,65536,4.733333,3.2,4.733333,3.933333,7,0,8,0)
(v6,18,65536,4.733333,3.933333,3.399999,3.933333,7,0,8,0)
(v6,19,65536,3.399999,3.933333,3.399999,3.2,7,0,8,0))))
(v6,20,0,2.4,1.8,2.4,0.8,7,0,8,0)
(v6,21,0,2.4,0.8,1.866667,0.8,7,0,8,0)
(v6,22,0,2.8,1.8,2.8,0.8,7,0,8,0)
(v6,23,0,2.8,0.8,3.399999,0.8,7,0,8,0)
(v6,24,0,2,3,2,3.6,7,0,8,0)
(v6,25,0,2,3.6,3.399999,3.6,7,0,8,0)
(t14,26,0,2.2,2.133333,0,7,0,0,,wst:swiss10,Make_DAF)
(t14,27,0,0.733333,0.666667,0,7,0,0,,wst:swiss10,Input_File)
(t14,28,0,3.6,0.666667,0,7,0,0,,wst:swiss10,DAF_Handler)
(t14,29,0,3.6,3.466667,0,7,0,0,,wst:swiss10,SYSDEP)
(p8,31,8,5,5,127
(g9,31,0
(g9,31,0
(v6,31,65536,3.4,2.066667,4.733333,2.066667,7,0,8,0)
(v6,32,65536,4.733333,2.066667,4.733333,2.8,7,0,8,0)
(v6,33,65536,4.733333,2.8,3.4,2.8,7,0,8,0)
(v6,34,65536,3.4,2.8,3.4,2.066667,7,0,8,0))))
(t14,35,0,3.6,2.333333,0,7,0,0,,wst:swiss10,Console)
(v6,36,0,2.933333,2.4,3.4,2.4,7,0,8,0)
(g9,37,8
(v6,37,0,1.866667,0.8,2.066667,0.8,7,0,8,0)
(g9,39,1025
(p8,39,0,5,7,0
(g9,39,0
(g9,39,0
(v6,39,0,2.017019,0.745275,1.866667,0.8,7,0,8,0)
(v6,40,0,1.866667,0.8,2.017019,0.854723,7,0,8,0)
(v6,41,0,2.017019,0.854723,1.984945,0.8,7,0,8,0)
(v6,42,0,1.984945,0.8,2.017019,0.745275,7,0,8,0))))
(v6,43,25167905,1.866667,0.8,1.866667,0.8,7,127,8,0)))
(g9,44,8
(v6,44,0,3.399999,0.8,3.199999,0.8,7,0,8,0)
(g9,46,1025
(p8,46,0,5,7,0
(g9,46,0
(g9,46,0
(v6,46,0,3.249647,0.854725,3.399999,0.8,7,0,8,0)
(v6,47,0,3.399999,0.8,3.249647,0.745277,7,0,8,0)
(v6,48,0,3.249647,0.745277,3.281721,0.8,7,0,8,0)
(v6,49,0,3.281721,0.8,3.249647,0.854725,7,0,8,0))))
(v6,50,25167905,3.399999,0.8,3.399999,0.8,7,127,8,0)))
(g9,51,8
(v6,51,0,3.4,2.4,3.2,2.4,7,0,8,0)
(g9,53,1025
(p8,53,0,5,7,0
(g9,53,0
(g9,53,0
(v6,53,0,3.249648,2.454725,3.4,2.4,7,0,8,0)
(v6,54,0,3.4,2.4,3.249648,2.345277,7,0,8,0)
(v6,55,0,3.249648,2.345277,3.281722,2.4,7,0,8,0)
(v6,56,0,3.281722,2.4,3.249648,2.454725,7,0,8,0))))
(v6,57,25167905,3.4,2.4,3.4,2.4,7,127,8,0)))
(g9,58,8
(v6,58,0,3.4,3.6,3.2,3.6,7,0,8,0)
(g9,60,1025
(p8,60,0,5,7,0
(g9,60,0
(g9,60,0
(v6,60,0,3.249648,3.654725,3.4,3.6,7,0,8,0)
(v6,61,0,3.4,3.6,3.249648,3.545278,7,0,8,0)
(v6,62,0,3.249648,3.545278,3.281722,3.6,7,0,8,0)
(v6,63,0,3.281722,3.6,3.249648,3.654725,7,0,8,0))))
(v6,64,25167905,3.4,3.6,3.4,3.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph,
Begin New Page = yes>
<|,8>The key CSCs shown in this dependency diagram are:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> The MAKE_DAF procedure, which reads the *.doc files that contain
the text of the Ada LRM and creates a corresponding set of *.daf files
(DAF stands for Direct Access File)
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> The SYSDEP package, which contains all the System Dependency
information
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> The DAF_Handler package, which is used to create and access the
information in the *.daf files
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> Package Input_File (part of CS Parts), which provides text file
manipulation
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> Package Console (part of CS Parts), which provides the ability
to display to the console
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.1.4.><End Sub>
<F0> Dependency Diagram for the Make_Cit Task
<paragraph>
The following Dependency diagram (simplified Booch diagram) shows
the top-level view of the dependencies of the Make_Cit CSC:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(g9,1,0
(v6,1,0,2.133334,1.8,1.333333,3,7,0,8,0)
(v6,2,0,1.333333,3,2.533333,3,7,0,8,0)
(v6,3,0,2.533333,3,3.333333,1.8,7,0,8,0)
(v6,4,0,3.333333,1.8,2.133334,1.8,7,0,8,0))
(p8,6,8,5,5,127
(g9,6,0
(g9,6,0
(v6,6,65536,0.533333,0.4,1.866667,0.4,7,0,8,0)
(v6,7,65536,1.866667,0.4,1.866667,1.133333,7,0,8,0)
(v6,8,65536,1.866667,1.133333,0.533333,1.133333,7,0,8,0)
(v6,9,65536,0.533333,1.133333,0.533333,0.4,7,0,8,0))))
(p8,11,8,5,5,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.399999,0.4,4.733333,0.4,7,0,8,0)
(v6,12,65536,4.733333,0.4,4.733333,1.133333,7,0,8,0)
(v6,13,65536,4.733333,1.133333,3.399999,1.133333,7,0,8,0)
(v6,14,65536,3.399999,1.133333,3.399999,0.4,7,0,8,0))))
(p8,16,8,5,5,127
(g9,16,0
(g9,16,0
(v6,16,65536,3.399999,3.2,4.733333,3.2,7,0,8,0)
(v6,17,65536,4.733333,3.2,4.733333,3.933333,7,0,8,0)
(v6,18,65536,4.733333,3.933333,3.399999,3.933333,7,0,8,0)
(v6,19,65536,3.399999,3.933333,3.399999,3.2,7,0,8,0))))
(v6,20,0,2.4,1.8,2.4,0.8,7,0,8,0)
(v6,21,0,2.4,0.8,1.866667,0.8,7,0,8,0)
(v6,22,0,2.8,1.8,2.8,0.8,7,0,8,0)
(v6,23,0,2.8,0.8,3.399999,0.8,7,0,8,0)
(v6,24,0,2,3,2,3.6,7,0,8,0)
(v6,25,0,2,3.6,3.399999,3.6,7,0,8,0)
(t14,26,0,2.2,2.133333,0,7,0,0,,wst:swiss10,Make_Cit)
(t14,27,0,0.733333,0.666667,0,7,0,0,,wst:swiss10,Output_File)
(t14,28,0,3.6,0.666667,0,7,0,0,,wst:swiss10,DAF_Handler)
(t14,29,0,3.6,3.466667,0,7,0,0,,wst:swiss10,SYSDEP)
(p8,31,8,5,5,127
(g9,31,0
(g9,31,0
(v6,31,65536,0.133333,1.666667,1.466667,1.666667,7,0,8,0)
(v6,32,65536,1.466667,1.666667,1.466667,2.4,7,0,8,0)
(v6,33,65536,1.466667,2.4,0.133333,2.4,7,0,8,0)
(v6,34,65536,0.133333,2.4,0.133333,1.666667,7,0,8,0))))
(t14,35,0,0.333333,1.933333,0,7,0,0,,wst:swiss10,Console)
(v6,36,0,2.000001,2,1.466667,2,7,0,8,0)
(g9,37,8
(v6,37,0,1.466667,2,1.666667,2,7,0,8,0)
(g9,39,1025
(p8,39,0,5,7,0
(g9,39,0
(g9,39,0
(v6,39,0,1.617019,1.945275,1.466667,2,7,0,8,0)
(v6,40,0,1.466667,2,1.617019,2.054723,7,0,8,0)
(v6,41,0,1.617019,2.054723,1.584945,2,7,0,8,0)
(v6,42,0,1.584945,2,1.617019,1.945275,7,0,8,0))))
(v6,43,25167905,1.466667,2,1.466667,2,7,127,8,0)))
(g9,44,8
(v6,44,0,1.866667,0.8,2.066667,0.8,7,0,8,0)
(g9,46,1025
(p8,46,0,5,7,0
(g9,46,0
(g9,46,0
(v6,46,0,2.017019,0.745275,1.866667,0.8,7,0,8,0)
(v6,47,0,1.866667,0.8,2.017019,0.854723,7,0,8,0)
(v6,48,0,2.017019,0.854723,1.984945,0.8,7,0,8,0)
(v6,49,0,1.984945,0.8,2.017019,0.745275,7,0,8,0))))
(v6,50,25167905,1.866667,0.8,1.866667,0.8,7,127,8,0)))
(g9,51,8
(v6,51,0,3.4,0.8,3.2,0.8,7,0,8,0)
(g9,53,1025
(p8,53,0,5,7,0
(g9,53,0
(g9,53,0
(v6,53,0,3.249648,0.854725,3.4,0.8,7,0,8,0)
(v6,54,0,3.4,0.8,3.249648,0.745277,7,0,8,0)
(v6,55,0,3.249648,0.745277,3.281722,0.8,7,0,8,0)
(v6,56,0,3.281722,0.8,3.249648,0.854725,7,0,8,0))))
(v6,57,25167905,3.4,0.8,3.4,0.8,7,127,8,0)))
(g9,58,8
(v6,58,0,3.4,3.6,3.2,3.6,7,0,8,0)
(g9,60,1025
(p8,60,0,5,7,0
(g9,60,0
(g9,60,0
(v6,60,0,3.249648,3.654725,3.4,3.6,7,0,8,0)
(v6,61,0,3.4,3.6,3.249648,3.545278,7,0,8,0)
(v6,62,0,3.249648,3.545278,3.281722,3.6,7,0,8,0)
(v6,63,0,3.281722,3.6,3.249648,3.654725,7,0,8,0))))
(v6,64,25167905,3.4,3.6,3.4,3.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
The key CSCs shown in this dependency diagram are:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> The MAKE_CIT procedure, which reads the *.daf files and creates
a CIT.ADA file which contains the enumeration type CITATION_ID (that
contains values corresponding to every citation in all the *.daf files)
and a Citation_Location_Vector (CLV) array that contains a mapping
between each citation and a record of data that contains an identification
of the corresponding *.daf file, the starting line number of the citation
in the *.daf file, and the ending line number of the citation in the
*.daf file
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> The SYSDEP package, which contains all the System Dependency
information
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> The DAF_Handler package, which is used to create and access the
information in the *.daf files
<list>
<|,9><"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> Package Output_File (part of CS Parts), which provides text file
manipulation
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> Package Console (part of CS Parts), which provides the ability
to display to the console
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.1.2.><End Sub>
<F0> System States for LRM_Reader Task
<paragraph>
This SDD only documents the LRM_Reader task in terms of its states
because the other two tasks are far less complex and do not require
an elaborate design model.
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.2.1.><End Sub>
<F0> State Table
<paragraph>
The following table itemizes the states of the LRM_Reader CSC:
<paragraph,
Left Tab = 1.75/4.25 Inches>
<F86>State<Tab>Meaning<Tab>Events<F0><HR>
Initialization<Tab>Startup initialization<Tab>Done<HR>
<Tab><Tab>Unexpected Error<HR>
Initial Command Dispatch<Tab>Command Line Argument is processed<Tab>Done<HR>
<Tab><Tab>Unexpected Error<HR>
Command Dispatch<Tab>User Input is Acquired and Processed<Tab>Citation
Input<HR>
<Tab><Tab>Movement Command Input<HR>
<Tab><Tab>Print Command Input<HR>
<Tab><Tab>String Search Command Input<HR>
<Tab><Tab>Other Valid Command Input<HR>
<Tab><Tab>Termination Command Input<HR>
<Tab><Tab>Invalid Command Input<HR>
<Tab><Tab>Unexpected Error<HR>
Citation Processing<Tab>Locate and Display Citation<Tab>Done<HR>
<Tab><Tab>Citation Not Found<HR>
<Tab><Tab>Unexpected Error<HR>
Movement Processing<Tab>Move Between Screens and Citations<Tab>Done<HR>
<Tab><Tab>Invalid Movement Attempted<HR>
<Tab><Tab>Unexpected Error<HR>
Print Processing<Tab>Print Screen or Citation<Tab>Done<HR>
<Tab><Tab>Print Error<HR>
<Tab><Tab>Unexpected Error<HR>
String Search Processing<Tab>Search for String<Tab>String Found<HR>
<Tab><Tab>String Not Found<HR>
<Tab><Tab>Unexpected Error<HR>
Other Processing<Tab>Miscellaneous Commands Processed<Tab>Done<HR>
<Tab><Tab>Error in Processing<HR>
<Tab><Tab>Unexpected Error<HR>
Unexpected Error Handler<Tab>Recover from Unexpected Errors<Tab>Done<HR>
Termination<Tab>Close Down System and Exit to OS<Tab>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.2.2.><End Sub>
<F0> State Transition Diagram
<paragraph>
The following State Transition Table shows these states and the events
that cause transition between them. For each state except the Unexpected
Error Handler, an Unexpected Error event causes transition to the
Unexpected Error Handler; these events and transitions are not shown
in order to reduce clutter in the diagram.<HR>
<|,10><HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,0.4,0.4,1.6,0.4,7,0,8,0)
(v6,3,65536,1.6,0.4,1.6,0.8,7,0,8,0)
(v6,4,65536,1.6,0.8,0.4,0.8,7,0,8,0)
(v6,5,65536,0.4,0.8,0.4,0.4,7,0,8,0))))
(p8,7,8,5,7,127
(g9,7,0
(g9,7,0
(v6,7,65536,2.8,0.4,4,0.4,7,0,8,0)
(v6,8,65536,4,0.4,4,0.8,7,0,8,0)
(v6,9,65536,4,0.8,2.8,0.8,7,0,8,0)
(v6,10,65536,2.8,0.8,2.8,0.4,7,0,8,0))))
(t14,11,0,0.466667,0.6,0,7,0,0,,wst:swiss10,Initialization)
(t14,12,0,2.866667,0.6,0,7,0,0,,wst:swiss10,Initial\ Command)
(t14,13,0,2.866667,0.733333,0,7,0,0,,wst:swiss10,Dispatch)
(v6,14,0,1.6,0.6,2.8,0.6,7,0,8,0)
(p8,16,8,5,7,127
(g9,16,0
(g9,16,0
(v6,16,65536,2.4,3.2,4.4,3.2,7,0,8,0)
(v6,17,65536,4.4,3.2,4.4,4,7,0,8,0)
(v6,18,65536,4.4,4,2.4,4,7,0,8,0)
(v6,19,65536,2.4,4,2.4,3.2,7,0,8,0))))
(v6,20,0,3.4,0.8,3.4,3.2,7,0,8,0)
(t14,21,0,2.866667,3.6,0,7,0,0,,wst:swiss10,Command\ Dispatch)
(t14,22,0,2,0.533333,0,7,0,0,,wst:swiss10,Done)
(t14,23,0,3.466667,1.2,0,7,0,0,,wst:swiss10,Done)
(p8,25,8,5,7,127
(g9,25,0
(g9,25,0
(v6,25,65536,0.066667,1.8,1.266667,1.8,7,0,8,0)
(v6,26,65536,1.266667,1.8,1.266667,2.2,7,0,8,0)
(v6,27,65536,1.266667,2.2,0.066667,2.2,7,0,8,0)
(v6,28,65536,0.066667,2.2,0.066667,1.8,7,0,8,0))))
(p8,30,8,5,7,127
(g9,30,0
(g9,30,0
(v6,30,65536,5.2,1.8,6.4,1.8,7,0,8,0)
(v6,31,65536,6.4,1.8,6.4,2.2,7,0,8,0)
(v6,32,65536,6.4,2.2,5.2,2.2,7,0,8,0)
(v6,33,65536,5.2,2.2,5.2,1.8,7,0,8,0))))
(p8,35,8,5,7,127
(g9,35,0
(g9,35,0
(v6,35,65536,0.066667,3.4,1.266667,3.4,7,0,8,0)
(v6,36,65536,1.266667,3.4,1.266667,3.8,7,0,8,0)
(v6,37,65536,1.266667,3.8,0.066667,3.8,7,0,8,0)
(v6,38,65536,0.066667,3.8,0.066667,3.4,7,0,8,0))))
(p8,40,8,5,7,127
(g9,40,0
(g9,40,0
(v6,40,65536,5.2,3.4,6.4,3.4,7,0,8,0)
(v6,41,65536,6.4,3.4,6.4,3.8,7,0,8,0)
(v6,42,65536,6.4,3.8,5.2,3.8,7,0,8,0)
(v6,43,65536,5.2,3.8,5.2,3.4,7,0,8,0))))
(p8,45,8,5,7,127
(g9,45,0
(g9,45,0
(v6,45,65536,0.066667,4.6,1.266667,4.6,7,0,8,0)
(v6,46,65536,1.266667,4.6,1.266667,5,7,0,8,0)
(v6,47,65536,1.266667,5,0.066667,5,7,0,8,0)
(v6,48,65536,0.066667,5,0.066667,4.6,7,0,8,0))))
(p8,50,8,5,7,127
(g9,50,0
(g9,50,0
(v6,50,65536,5.2,4.6,6.4,4.6,7,0,8,0)
(v6,51,65536,6.4,4.6,6.4,5,7,0,8,0)
(v6,52,65536,6.4,5,5.2,5,7,0,8,0)
(v6,53,65536,5.2,5,5.2,4.6,7,0,8,0))))
(p8,55,8,5,7,127
(g9,55,0
(g9,55,0
(v6,55,65536,2.8,5.4,4,5.4,7,0,8,0)
(v6,56,65536,4,5.4,4,5.8,7,0,8,0)
(v6,57,65536,4,5.8,2.8,5.8,7,0,8,0)
(v6,58,65536,2.8,5.8,2.8,5.4,7,0,8,0))))
(v6,59,0,3.4,4,3.4,5.4,7,0,8,0)
(v6,60,0,4,3.2,4,2,7,0,8,0)
(v6,61,0,4,2,5.2,2,7,0,8,0)
(v6,62,0,4.4,3.6,5.2,3.6,7,0,8,0)
(v6,63,0,2.8,3.2,2.8,2,7,0,8,0)
(v6,64,0,2.8,2,1.266667,2,7,0,8,0)
(v6,65,0,2.4,3.6,1.266667,3.6,7,0,8,0)
(v6,66,0,2.8,4,2.8,4.8,7,0,8,0)
(v6,67,0,2.8,4.8,1.266667,4.8,7,0,8,0)
(t14,68,0,0.133333,2,0,7,0,0,,wst:swiss10,Citation)
(t14,69,0,5.266667,2,0,7,0,0,,wst:swiss10,Movement)
(t14,70,0,5.266667,2.133333,0,7,0,0,,wst:swiss10,Processing)
(t14,71,0,0.133333,2.133333,0,7,0,0,,wst:swiss10,Processing)
(t14,72,0,0.133333,3.6,0,7,0,0,,wst:swiss10,Print)
(t14,73,0,0.133333,3.733333,0,7,0,0,,wst:swiss10,Processing)
(t14,74,0,5.266667,3.6,0,7,0,0,,wst:swiss10,Search\ String)
(t14,75,0,5.266667,3.733333,0,7,0,0,,wst:swiss10,Processing)
(t14,76,0,0.133333,4.8,0,7,0,0,,wst:swiss10,Other)
(t14,77,0,0.133333,4.933333,0,7,0,0,,wst:swiss10,Processing)
(t14,78,0,5.266667,4.8,0,7,0,0,,wst:swiss10,Unexpected\ Error)
(t14,79,0,5.266667,4.933333,0,7,0,0,,wst:swiss10,Handler)
(t14,80,0,2.866667,5.6,0,7,0,0,,wst:swiss10,Termination)
(t14,81,0,1.6,1.933333,0,7,0,0,,wst:swiss10,Citation\ Input)
(t14,82,0,3.866667,1.733333,0,7,0,0,,wst:swiss10,Movement\ Command)
(t14,83,0,3.866667,1.866667,0,7,0,0,,wst:swiss10,Input)
(t14,84,0,4.533333,3.266667,0,7,0,0,,wst:swiss10,Search\ String\ Command)
(t14,85,0,4.533333,3.4,0,7,0,0,,wst:swiss10,Input)
(t14,86,0,1.333333,3.266667,0,7,0,0,,wst:swiss10,Print\ Command)
(t14,87,0,1.333333,3.4,0,7,0,0,,wst:swiss10,Input)
(t14,88,0,1.6,4.6,0,7,0,0,,wst:swiss10,Other\ Command)
(t14,89,0,1.6,4.733333,0,7,0,0,,wst:swiss10,Input)
(t14,90,0,3.466667,4.866667,0,7,0,0,,wst:swiss10,Termination\ Command)
(t14,91,0,3.466667,5,0,7,0,0,,wst:swiss10,Input)
(v6,92,0,0.8,2.2,0.8,2.8,7,0,8,0)
(v6,93,0,0.8,2.8,2.6,2.8,7,0,8,0)
(v6,94,0,2.6,2.8,2.6,3.2,7,0,8,0)
(t14,95,0,0.866667,2.733333,0,7,0,0,,wst:swiss10,Done\ or\ Citation\ Not\ Found
)
(v6,96,0,6.2,2.2,6.2,2.8,7,0,8,0)
(v6,97,0,6.2,2.8,4.133333,2.8,7,0,8,0)
(v6,98,0,4.133333,2.8,4.133333,3.2,7,0,8,0)
(t14,99,0,4.333333,2.6,0,7,0,0,,wst:swiss10,Done\ or)
(t14,100,0,4.333333,2.733333,0,7,0,0,,wst:swiss10,Invalid\ Movement\ Attempted)
(v6,101,0,0.8,3.8,0.8,4,7,0,8,0)
(v6,102,0,0.8,4,2,4,7,0,8,0)
(v6,103,0,2,4,2,3.8,7,0,8,0)
(v6,104,0,2,3.8,2.4,3.8,7,0,8,0)
(t14,105,0,0.866667,3.933333,0,7,0,0,,wst:swiss10,Done\ or\ Print\ Error)
(v6,106,0,6,3.8,6,4,7,0,8,0)
(v6,107,0,6,4,4.8,4,7,0,8,0)
(v6,108,0,4.8,4,4.8,3.8,7,0,8,0)
(v6,109,0,4.8,3.8,4.4,3.8,7,0,8,0)
(t14,110,0,4.866667,4.133333,0,7,0,0,,wst:swiss10,String\ Found\ or)
(t14,111,0,4.866667,4.266667,0,7,0,0,,wst:swiss10,String\ Not\ Found)
(v6,112,0,0.8,5,0.8,5.2,7,0,8,0)
(v6,113,0,0.8,5.2,3.066667,5.2,7,0,8,0)
(v6,114,0,3.066667,5.2,3.066667,4,7,0,8,0)
(t14,115,0,1.333333,5.133333,0,7,0,0,,wst:swiss10,Done\ or\ Error\ in\ Processi
ng)
(v6,116,0,5.6,5,5.6,5.6,7,0,8,0)
(v6,117,0,5.6,5.6,4,5.6,7,0,8,0)
(t14,118,0,4.933333,5.533333,0,7,0,0,,wst:swiss10,Done)
(v6,119,0,4.266667,4,4.266667,4.4,7,0,8,0)
(v6,120,0,4.266667,4.4,3.6,4.4,7,0,8,0)
(v6,121,0,3.6,4.4,3.6,4,7,0,8,0)
(t14,122,0,3.666667,4.533333,0,7,0,0,,wst:swiss10,Invalid\ Command)
(g9,123,8
(v6,123,0,2.8,0.6,2.6,0.6,7,0,8,0)
(g9,125,1025
(p8,125,0,5,7,0
(g9,125,0
(g9,125,0
(v6,125,0,2.649648,0.654725,2.8,0.6,7,0,8,0)
(v6,126,0,2.8,0.6,2.649648,0.545277,7,0,8,0)
(v6,127,0,2.649648,0.545277,2.681722,0.6,7,0,8,0)
(v6,128,0,2.681722,0.6,2.649648,0.654725,7,0,8,0))))
(v6,129,25167905,2.8,0.6,2.8,0.6,7,127,8,0)))
(g9,130,8
(v6,130,0,3.4,3.2,3.4,3,7,0,8,0)
(g9,132,1025
(p8,132,0,5,7,0
(g9,132,0
(g9,132,0
(v6,132,0,3.345275,3.049648,3.4,3.2,7,0,8,0)
(v6,133,0,3.4,3.2,3.454722,3.049648,7,0,8,0)
(v6,134,0,3.454722,3.049648,3.4,3.081722,7,0,8,0)
(v6,135,0,3.4,3.081722,3.345275,3.049648,7,0,8,0))))
(v6,136,25167905,3.4,3.2,3.4,3.2,7,127,8,0)))
(g9,137,8
(v6,137,0,4,5.6,4.2,5.6,7,0,8,0)
(g9,139,1025
(p8,139,0,5,7,0
(g9,139,0
(g9,139,0
(v6,139,0,4.150352,5.545275,4,5.6,7,0,8,0)
(v6,140,0,4,5.6,4.150352,5.654723,7,0,8,0)
(v6,141,0,4.150352,5.654723,4.118278,5.6,7,0,8,0)
(v6,142,0,4.118278,5.6,4.150352,5.545275,7,0,8,0))))
(v6,143,25167905,4,5.6,4,5.6,7,127,8,0)))
(g9,144,8
(v6,144,0,3.4,5.4,3.4,5.2,7,0,8,0)
(g9,146,1025
(p8,146,0,5,7,0
(g9,146,0
(g9,146,0
(v6,146,0,3.345275,5.249648,3.4,5.4,7,0,8,0)
(v6,147,0,3.4,5.4,3.454722,5.249648,7,0,8,0)
(v6,148,0,3.454722,5.249648,3.4,5.281722,7,0,8,0)
(v6,149,0,3.4,5.281722,3.345275,5.249648,7,0,8,0))))
(v6,150,25167905,3.4,5.4,3.4,5.4,7,127,8,0)))
(g9,151,8
(v6,151,0,3.6,4,3.6,4.2,7,0,8,0)
(g9,153,1025
(p8,153,0,5,7,0
(g9,153,0
(g9,153,0
(v6,153,0,3.654725,4.150352,3.6,4,7,0,8,0)
(v6,154,0,3.6,4,3.545278,4.150352,7,0,8,0)
(v6,155,0,3.545278,4.150352,3.6,4.118278,7,0,8,0)
(v6,156,0,3.6,4.118278,3.654725,4.150352,7,0,8,0))))
(v6,157,25167905,3.6,4,3.6,4,7,127,8,0)))
(g9,158,8
(v6,158,0,5.2,2,5,2,7,0,8,0)
(g9,160,1025
(p8,160,0,5,7,0
(g9,160,0
(g9,160,0
(v6,160,0,5.049648,2.054725,5.2,2,7,0,8,0)
(v6,161,0,5.2,2,5.049648,1.945277,7,0,8,0)
(v6,162,0,5.049648,1.945277,5.081722,2,7,0,8,0)
(v6,163,0,5.081722,2,5.049648,2.054725,7,0,8,0))))
(v6,164,25167905,5.2,2,5.2,2,7,127,8,0)))
(g9,165,8
(v6,165,0,4.133333,3.2,4.133333,3,7,0,8,0)
(g9,167,1025
(p8,167,0,5,7,0
(g9,167,0
(g9,167,0
(v6,167,0,4.078608,3.049648,4.133333,3.2,7,0,8,0)
(v6,168,0,4.133333,3.2,4.188057,3.049648,7,0,8,0)
(v6,169,0,4.188057,3.049648,4.133333,3.081722,7,0,8,0)
(v6,170,0,4.133333,3.081722,4.078608,3.049648,7,0,8,0))))
(v6,171,25167905,4.133333,3.2,4.133333,3.2,7,127,8,0)))
(g9,172,8
(v6,172,0,5.2,3.6,5,3.6,7,0,8,0)
(g9,174,1025
(p8,174,0,5,7,0
(g9,174,0
(g9,174,0
(v6,174,0,5.049648,3.654725,5.2,3.6,7,0,8,0)
(v6,175,0,5.2,3.6,5.049648,3.545278,7,0,8,0)
(v6,176,0,5.049648,3.545278,5.081722,3.6,7,0,8,0)
(v6,177,0,5.081722,3.6,5.049648,3.654725,7,0,8,0))))
(v6,178,25167905,5.2,3.6,5.2,3.6,7,127,8,0)))
(g9,179,8
(v6,179,0,4.4,3.8,4.6,3.8,7,0,8,0)
(g9,181,1025
(p8,181,0,5,7,0
(g9,181,0
(g9,181,0
(v6,181,0,4.550352,3.745275,4.4,3.8,7,0,8,0)
(v6,182,0,4.4,3.8,4.550352,3.854723,7,0,8,0)
(v6,183,0,4.550352,3.854723,4.518278,3.8,7,0,8,0)
(v6,184,0,4.518278,3.8,4.550352,3.745275,7,0,8,0))))
(v6,185,25167905,4.4,3.8,4.4,3.8,7,127,8,0)))
(g9,186,8
(v6,186,0,1.266667,4.8,1.466667,4.8,7,0,8,0)
(g9,188,1025
(p8,188,0,5,7,0
(g9,188,0
(g9,188,0
(v6,188,0,1.417019,4.745275,1.266667,4.8,7,0,8,0)
(v6,189,0,1.266667,4.8,1.417019,4.854723,7,0,8,0)
(v6,190,0,1.417019,4.854723,1.384945,4.8,7,0,8,0)
(v6,191,0,1.384945,4.8,1.417019,4.745275,7,0,8,0))))
(v6,192,25167905,1.266667,4.8,1.266667,4.8,7,127,8,0)))
(g9,193,8
(v6,193,0,3.066667,4.026667,3.066667,4.226667,7,0,8,0)
(g9,195,1025
(p8,195,0,5,7,0
(g9,195,0
(g9,195,0
(v6,195,0,3.121392,4.177019,3.066667,4.026667,7,0,8,0)
(v6,196,0,3.066667,4.026667,3.011944,4.177019,7,0,8,0)
(v6,197,0,3.011944,4.177019,3.066667,4.144945,7,0,8,0)
(v6,198,0,3.066667,4.144945,3.121392,4.177019,7,0,8,0))))
(v6,199,25167905,3.066667,4.026667,3.066667,4.026667,7,127,8,0)))
(g9,200,8
(v6,200,0,1.266667,3.6,1.466667,3.6,7,0,8,0)
(g9,202,1025
(p8,202,0,5,7,0
(g9,202,0
(g9,202,0
(v6,202,0,1.417019,3.545275,1.266667,3.6,7,0,8,0)
(v6,203,0,1.266667,3.6,1.417019,3.654723,7,0,8,0)
(v6,204,0,1.417019,3.654723,1.384945,3.6,7,0,8,0)
(v6,205,0,1.384945,3.6,1.417019,3.545275,7,0,8,0))))
(v6,206,25167905,1.266667,3.6,1.266667,3.6,7,127,8,0)))
(g9,207,8
(v6,207,0,2.4,3.8,2.2,3.8,7,0,8,0)
(g9,209,1025
(p8,209,0,5,7,0
(g9,209,0
(g9,209,0
(v6,209,0,2.249648,3.854725,2.4,3.8,7,0,8,0)
(v6,210,0,2.4,3.8,2.249648,3.745277,7,0,8,0)
(v6,211,0,2.249648,3.745277,2.281722,3.8,7,0,8,0)
(v6,212,0,2.281722,3.8,2.249648,3.854725,7,0,8,0))))
(v6,213,25167905,2.4,3.8,2.4,3.8,7,127,8,0)))
(g9,214,8
(v6,214,0,1.266667,2,1.466667,2,7,0,8,0)
(g9,216,1025
(p8,216,0,5,7,0
(g9,216,0
(g9,216,0
(v6,216,0,1.417019,1.945275,1.266667,2,7,0,8,0)
(v6,217,0,1.266667,2,1.417019,2.054723,7,0,8,0)
(v6,218,0,1.417019,2.054723,1.384945,2,7,0,8,0)
(v6,219,0,1.384945,2,1.417019,1.945275,7,0,8,0))))
(v6,220,25167905,1.266667,2,1.266667,2,7,127,8,0)))
(g9,221,8
(v6,221,0,2.6,3.2,2.6,3,7,0,8,0)
(g9,223,1025
(p8,223,0,5,7,0
(g9,223,0
(g9,223,0
(v6,223,0,2.545275,3.049648,2.6,3.2,7,0,8,0)
(v6,224,0,2.6,3.2,2.654723,3.049648,7,0,8,0)
(v6,225,0,2.654723,3.049648,2.6,3.081722,7,0,8,0)
(v6,226,0,2.6,3.081722,2.545275,3.049648,7,0,8,0))))
(v6,227,25167905,2.6,3.2,2.6,3.2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.2.3.><End Sub>
<F0> State/Associated CSC Table
<paragraph>
The following table shows each state and the CSCs that are principally
executing in that state.
<paragraph,
Left Tab = 1.75/4.25 Inches>
<F86>State<Tab>Associated CSCs<F0><HR>
Initialization<Tab>LRM_Reader<HR>
Initial Command Dispatch<Tab>LRM_Reader<HR>
Command Dispatch<Tab>Command Dispatcher, Screen Display Controller<HR>
Citation Processing<Tab>Citation_Handler, Primitive_Citation_Handler<HR>
Movement Processing<Tab>Citation_Handler, Primitive_Citation_Handler<HR>
Print Processing<Tab>Print_Log_Handler<HR>
String Search Processing<Tab>Citation_Handler, Primitive_Citation_Handler<HR>
Other Processing<Tab>Citation_Handler, Primitive_Citation_Handler<HR>
<|,11>Unexpected Error Handler<Tab>LRM_Reader<HR>
Termination<Tab>LRM_Reader
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.1.3.><End Sub>
<F0> Memory and processing time allocation
<paragraph>
These allocations are presented for guidance only and are not binding.
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.3.1.><End Sub>
<F0> LRM_Reader-based Task
<paragraph,
Left Tab = 3/4/5 Inches>
<F86>CSC<Tab>Memory<Tab>Time<F0><HR>
LRM_Reader Procedure<Tab>5%<Tab>1%<HR>
SYSDEP Package<Tab>0%<Tab>0%<HR>
Citation_Definition Package<Tab>5%<Tab>1%<HR>
Print_Log_Handler Package<Tab>5%<Tab>2%<HR>
Screen_Display_Controller Package<Tab>20%<Tab>80%<HR>
Citation_Handler Package<Tab>30%<Tab>6%<HR>
Primitive_Citation_Handler Package<Tab>35%<Tab>10%
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.3.2.><End Sub>
<F0> Make_Cit-based Task
<paragraph,
Left Tab = 3/4/5 Inches>
<F86>CSC<Tab>Memory<Tab>Time<F0><HR>
Make_Cit Procedure<Tab>5%<Tab>5%<HR>
Console Package<Tab>15%<Tab>15%<HR>
SYSDEP Package<Tab>0%<Tab>0%<HR>
DAF_Handler Package<Tab>30%<Tab>40%<HR>
Output_File Package<Tab>50%<Tab>40%
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.1.3.3.><End Sub>
<F0> Make_DAF-based Task
<paragraph,
Left Tab = 3/4/5 Inches>
<F86>CSC<Tab>Memory<Tab>Time<F0><HR>
Make_DAF Procedure<Tab>5%<Tab>5%<HR>
Console Package<Tab>15%<Tab>15%<HR>
SYSDEP Package<Tab>0%<Tab>0%<HR>
DAF_Handler Package<Tab>30%<Tab>45%<HR>
Input_File Package<Tab>50%<Tab>50%
<subsection,
Begin New Page = yes>
<|,12><"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 3.2.><End Sub>
<F0> CSCI design description
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.1.><End Sub>
<F0> LRM_Reader Procedure
<paragraph>
The LRM_Reader procedure is the mainline procedure for the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>. Its
purpose is to initialize the system, invoke the Command_Dispatcher,
clean up when the Command_Dispatcher is finished, and trap any unexpected
errors.
<subhead>
Mapping to Requirements
<paragraph>
The LRM_Reader Procedure is the wrapper encapsulating the body of
the Ada LRM Reader entity in the ERD in Section 3.3 of the SRS. It
also meets the command line interface requirement in the SUM to start
up with an optional citation specified on the command line.
<subhead>
Design
<paragraph>
The OID in Section 3.1.1.1 of this SDD shows the data flow associated
with the LRM_Reader Procedure.
<paragraph>
The functional flow of the LRM_Reader Procedure is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,2.466667,0.333333,4.066667,0.333333,7,0,8,0)
(v6,3,65536,4.066667,0.333333,4.066667,0.733333,7,0,8,0)
(v6,4,65536,4.066667,0.733333,2.466667,0.733333,7,0,8,0)
(v6,5,65536,2.466667,0.733333,2.466667,0.333333,7,0,8,0))))
(t14,6,0,2.8,0.6,0,7,0,0,,wst:swiss10,Initialize\ System)
(p8,8,8,5,7,127
(g9,8,0
(g9,8,0
(v6,8,65536,3.8,1.733333,3.234315,2.299019,7,0,8,0)
(v6,9,65536,3.234315,2.299019,2.66863,1.733333,7,0,8,0)
(v6,10,65536,2.66863,1.733333,3.234315,1.167648,7,0,8,0)
(v6,11,65536,3.234315,1.167648,3.8,1.733333,7,0,8,0))))
(t14,12,0,3.034315,1.565685,0,7,0,0,,wst:swiss10,Citation)
(t14,13,0,2.834315,1.765685,0,7,0,0,,wst:swiss10,on\ Command)
(t14,14,0,3.100981,1.965685,0,7,0,0,,wst:swiss10,Line?)
(v6,15,0,3.8,1.733333,5.266667,1.733333,7,0,8,0)
(v6,16,0,2.66863,1.733333,1.266667,1.733333,7,0,8,0)
(v6,17,0,1.266667,1.733333,1.266667,2.333333,7,0,8,0)
(v6,18,0,5.266667,1.733333,5.266667,2.333333,7,0,8,0)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,4.466667,2.333333,6.066667,2.333333,7,0,8,0)
(v6,21,65536,6.066667,2.333333,6.066667,2.733333,7,0,8,0)
(v6,22,65536,6.066667,2.733333,4.466667,2.733333,7,0,8,0)
(v6,23,65536,4.466667,2.733333,4.466667,2.333333,7,0,8,0))))
(p8,25,8,5,7,127
(g9,25,0
(g9,25,0
(v6,25,65536,0.466667,2.333333,2.066667,2.333333,7,0,8,0)
(v6,26,65536,2.066667,2.333333,2.066667,2.733333,7,0,8,0)
(v6,27,65536,2.066667,2.733333,0.466667,2.733333,7,0,8,0)
(v6,28,65536,0.466667,2.733333,0.466667,2.333333,7,0,8,0))))
(t14,29,0,0.666667,2.533333,0,7,0,0,,wst:swiss10,View\ Help\ Display)
(t14,30,0,4.866667,2.533333,0,7,0,0,,wst:swiss10,View\ Citation)
(v6,31,0,3.266667,0.733333,3.266667,1.2,7,0,8,0)
(v6,32,0,1.266667,2.733333,1.266667,3.133333,7,0,8,0)
(v6,33,0,5.266667,2.733333,5.266667,3.133333,7,0,8,0)
(v6,34,0,5.266667,3.133333,1.266667,3.133333,7,0,8,0)
(v6,35,0,3.266667,3.133333,3.266667,3.533333,7,0,8,0)
(p8,37,8,5,7,127
(g9,37,0
(g9,37,0
(v6,37,65536,2.066667,3.533333,4.466667,3.533333,7,0,8,0)
(v6,38,65536,4.466667,3.533333,4.466667,3.933333,7,0,8,0)
(v6,39,65536,4.466667,3.933333,2.066667,3.933333,7,0,8,0)
(v6,40,65536,2.066667,3.933333,2.066667,3.533333,7,0,8,0))))
(t14,41,0,2.533333,3.733333,0,7,0,0,,wst:swiss10,Close\ Print\ Log\ File\ if\ O
pen)
(t14,42,0,2.6,3.866667,0,7,0,0,,wst:swiss10,Close\ all\ Open\ Citations)
(t14,43,0,0.466667,2.666667,0,7,0,0,,wst:swiss10,Dispatch\ User\ Commands)
(t14,44,0,4.466667,2.666667,0,7,0,0,,wst:swiss10,Dispatch\ User\ Commands)
(t14,45,0,3.4,0.2,0,7,0,0,,wst:swiss10,Start)
(g9,46,8
(v6,46,0,3.266667,0.333333,3.266667,0.133333,7,0,8,0)
(g9,48,1025
(p8,48,0,5,7,0
(g9,48,0
(g9,48,0
(v6,48,0,3.211942,0.182981,3.266667,0.333333,7,0,8,0)
(v6,49,0,3.266667,0.333333,3.32139,0.182981,7,0,8,0)
(v6,50,0,3.32139,0.182981,3.266667,0.215055,7,0,8,0)
(v6,51,0,3.266667,0.215055,3.211942,0.182981,7,0,8,0))))
(v6,52,25167905,3.266667,0.333333,3.266667,0.333333,7,127,8,0)))
(g9,53,8
(v6,53,0,3.266667,1.2,3.266667,1,7,0,8,0)
(g9,55,1025
(p8,55,0,5,7,0
(g9,55,0
(g9,55,0
(v6,55,0,3.211942,1.049648,3.266667,1.2,7,0,8,0)
(v6,56,0,3.266667,1.2,3.32139,1.049648,7,0,8,0)
(v6,57,0,3.32139,1.049648,3.266667,1.081722,7,0,8,0)
(v6,58,0,3.266667,1.081722,3.211942,1.049648,7,0,8,0))))
(v6,59,25167905,3.266667,1.2,3.266667,1.2,7,127,8,0)))
(g9,60,8
(v6,60,0,5.266667,2.333333,5.266667,2.133333,7,0,8,0)
(g9,62,1025
(p8,62,0,5,7,0
(g9,62,0
(g9,62,0
(v6,62,0,5.211943,2.182981,5.266667,2.333333,7,0,8,0)
(v6,63,0,5.266667,2.333333,5.32139,2.182981,7,0,8,0)
(v6,64,0,5.32139,2.182981,5.266667,2.215055,7,0,8,0)
(v6,65,0,5.266667,2.215055,5.211943,2.182981,7,0,8,0))))
(v6,66,25167905,5.266667,2.333333,5.266667,2.333333,7,127,8,0)))
(g9,67,8
(v6,67,0,1.266667,2.333333,1.266667,2.133333,7,0,8,0)
(g9,69,1025
(p8,69,0,5,7,0
(g9,69,0
(g9,69,0
(v6,69,0,1.211942,2.182981,1.266667,2.333333,7,0,8,0)
(v6,70,0,1.266667,2.333333,1.32139,2.182981,7,0,8,0)
(v6,71,0,1.32139,2.182981,1.266667,2.215055,7,0,8,0)
(v6,72,0,1.266667,2.215055,1.211942,2.182981,7,0,8,0))))
(v6,73,25167905,1.266667,2.333333,1.266667,2.333333,7,127,8,0)))
(g9,74,8
(v6,74,0,3.266667,3.533333,3.266667,3.333333,7,0,8,0)
(g9,76,1025
(p8,76,0,5,7,0
(g9,76,0
(g9,76,0
(v6,76,0,3.211942,3.382981,3.266667,3.533333,7,0,8,0)
(v6,77,0,3.266667,3.533333,3.32139,3.382981,7,0,8,0)
(v6,78,0,3.32139,3.382981,3.266667,3.415055,7,0,8,0)
(v6,79,0,3.266667,3.415055,3.211942,3.382981,7,0,8,0))))
(v6,80,25167905,3.266667,3.533333,3.266667,3.533333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection,
Begin New Page = yes>
<|,13><"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.2.><End Sub>
<F0> Make_DAF Procedure
<paragraph>
The Make_DAF Procedure is used to convert the ASCII text files which
comprise the Ada LRM into Direct Access Files (DAFs). Placed into
DAFs, the information in the Ada LRM can be located and accessed much
more quickly than if it is stored as conventional ASCII text.
<subhead>
Mapping to Requirements
<paragraph>
The Make_DAF Procedure addresses the requirements to contain the data
in LRM Data Files in Sections 3.3 and 3.4 of the SRS. It also addresses
the timing requirements in Section 3.6 of the SRS.
<subhead>
Design
<paragraph>
The data flow of the Make_DAF Procedure is as follows:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,1.2,1.2,2,1.2,7,0,8,0)
(e8,2,0,2,0.8,3.333333,0.8,2,1.6,7,127,5,7,0,8,0)
(v6,3,0,3.333333,1.2,4.133333,1.2,7,0,8,0)
(v6,4,0,2.666667,2,4.133333,2,7,0,8,0)
(e8,5,0,3.933333,1.066667,5.133333,1.066667,3.933333,2.133333,7,127,5,7,0,8,0)
(v6,6,0,4.533333,2.133333,4.533333,3.2,7,0,8,0)
(v6,7,0,0.4,0.4,2,0.4,7,0,8,0)
(v6,8,0,0.4,0.8,2,0.8,7,0,8,0)
(v6,9,0,1.2,0.8,1.2,1.2,7,0,8,0)
(v6,10,0,4.133333,3.2,5.733333,3.2,7,0,8,0)
(v6,11,0,4.133333,3.6,5.733333,3.6,7,0,8,0)
(v6,12,0,5.133333,1.6,5.333333,1.6,7,0,8,0)
(v6,13,0,5.333333,1.6,5.333333,3.2,7,0,8,0)
(t14,14,0,1.133333,1.6,0,7,0,0,,wst:swiss10,ASCII\ Text\ Line)
(t14,15,0,3.2,0.866667,0,7,0,0,,wst:swiss10,Normal\ ASCII\ Text\ Line)
(t14,16,0,2.466667,2.4,0,7,0,0,,wst:swiss10,Section\ Header\ ASCII\ Text\ Line)
(t14,17,0,3.066667,2.933333,0,7,0,0,,wst:swiss10,Normal\ DAF\ Record)
(t14,18,0,5.666667,2.866667,0,7,0,0,,wst:swiss10,Continuation)
(t14,19,0,5.666667,3.066667,0,7,0,0,,wst:swiss10,DAF\ Record)
(t14,20,0,0.6,0.666667,0,7,0,0,,wst:swiss10,Ada\ LRM\ Text\ Files)
(t14,21,0,4.466667,3.466667,0,7,0,0,,wst:swiss10,Ada\ LRM\ DAFs)
(t14,22,0,2.2,1.066667,0,7,0,0,,wst:swiss10,Select)
(t14,23,0,2.2,1.2,0,7,0,0,,wst:swiss10,Normal\ or)
(t14,24,0,2.2,1.333333,0,7,0,0,,wst:swiss10,Section\ Header)
(t14,25,0,2.2,1.466667,0,7,0,0,,wst:swiss10,ASCII\ Text\ Lines)
(v6,26,0,2.666667,2,2.666667,1.6,7,0,8,0)
(t14,27,0,4.066667,1.466667,0,7,0,0,,wst:swiss10,Create\ Normal)
(t14,28,0,4.066667,1.666667,0,7,0,0,,wst:swiss10,and\ Continuation)
(t14,29,0,4.066667,1.866667,0,7,0,0,,wst:swiss10,DAF\ Records)
(g9,30,8
(v6,30,0,1.866667,1.333333,1.466667,1.333333,7,0,8,0)
(g9,32,1025
(p8,32,0,5,7,0
(g9,32,0
(g9,32,8
(v6,32,25165856,1.736026,1.333335,1.736026,1.333333,5,127,8,0)
(v6,33,0,1.736026,1.333333,1.712118,1.291922,7,0,8,0)
(v6,34,0,1.712118,1.291922,1.866667,1.333333,7,0,8,0)
(v6,35,0,1.866667,1.333333,1.712118,1.374745,7,0,8,0)
(v6,36,0,1.712118,1.374745,1.736026,1.333335,7,0,8,0))))
(v6,37,25167905,1.866667,1.333333,1.866667,1.333333,7,127,8,0))
(g9,38,1033
(e8,38,0,1.533333,1.266667,1.4,1.266667,1.533333,1.4,0,0,5,7,0,8,0)
(v6,39,25167905,1.466667,1.333333,1.466667,1.333333,7,127,8,0)))
(g9,40,8
(v6,40,0,3.733333,2.133333,3.333333,2.133333,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,8
(v6,42,25165856,3.602693,2.133335,3.602693,2.133333,5,127,8,0)
(v6,43,0,3.602693,2.133333,3.578784,2.091922,7,0,8,0)
(v6,44,0,3.578784,2.091922,3.733333,2.133333,7,0,8,0)
(v6,45,0,3.733333,2.133333,3.578784,2.174745,7,0,8,0)
(v6,46,0,3.578784,2.174745,3.602693,2.133335,7,0,8,0))))
(v6,47,25167905,3.733333,2.133333,3.733333,2.133333,7,127,8,0))
(g9,48,1033
(e8,48,0,3.4,2.066667,3.266667,2.066667,3.4,2.2,0,0,5,7,0,8,0)
(v6,49,25167905,3.333333,2.133333,3.333333,2.133333,7,127,8,0)))
(g9,50,8
(v6,50,0,3.933333,1,3.533333,1,7,0,8,0)
(g9,52,1025
(p8,52,0,5,7,0
(g9,52,0
(g9,52,8
(v6,52,25165856,3.802693,1.000002,3.802693,1,5,127,8,0)
(v6,53,0,3.802693,1,3.778784,0.958589,7,0,8,0)
(v6,54,0,3.778784,0.958589,3.933333,1,7,0,8,0)
(v6,55,0,3.933333,1,3.778784,1.041412,7,0,8,0)
(v6,56,0,3.778784,1.041412,3.802693,1.000002,7,0,8,0))))
(v6,57,25167905,3.933333,1,3.933333,1,7,127,8,0))
(g9,58,1033
(e8,58,0,3.6,0.933333,3.466667,0.933333,3.6,1.066667,0,0,5,7,0,8,0)
(v6,59,25167905,3.533333,1,3.533333,1,7,127,8,0)))
(g9,60,8
(v6,60,0,4.4,3.066667,4.4,2.666667,7,0,8,0)
(g9,62,1025
(p8,62,0,5,7,0
(g9,62,0
(g9,62,8
(v6,62,25165856,4.399998,2.936025,4.4,2.936025,5,127,8,0)
(v6,63,0,4.4,2.936025,4.441411,2.912117,7,0,8,0)
(v6,64,0,4.441411,2.912117,4.4,3.066666,7,0,8,0)
(v6,65,0,4.4,3.066666,4.358588,2.912117,7,0,8,0)
(v6,66,0,4.358588,2.912117,4.399998,2.936025,7,0,8,0))))
(v6,67,25167905,4.4,3.066666,4.4,3.066666,7,127,8,0))
(g9,68,1033
(e8,68,0,4.466667,2.733334,4.466666,2.6,4.333333,2.733334,0,0,5,7,0,8,0)
(v6,69,25167905,4.4,2.666667,4.4,2.666667,7,127,8,0)))
(g9,70,8
(v6,70,0,5.533333,3.066667,5.533333,2.666667,7,0,8,0)
(g9,72,1025
(p8,72,0,5,7,0
(g9,72,0
(g9,72,8
(v6,72,25165856,5.533332,2.936025,5.533333,2.936025,5,127,8,0)
(v6,73,0,5.533333,2.936025,5.574744,2.912117,7,0,8,0)
(v6,74,0,5.574744,2.912117,5.533333,3.066666,7,0,8,0)
(v6,75,0,5.533333,3.066666,5.491921,2.912117,7,0,8,0)
(v6,76,0,5.491921,2.912117,5.533332,2.936025,7,0,8,0))))
(v6,77,25167905,5.533333,3.066666,5.533333,3.066666,7,127,8,0))
(g9,78,1033
(e8,78,0,5.6,2.733334,5.599999,2.6,5.466667,2.733334,0,0,5,7,0,8,0)
(v6,79,25167905,5.533333,2.666667,5.533333,2.666667,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
The ASCII Text Lines from the Ada LRM Text Files are of two basic
formats: (1) Section Header ASCII Text Lines, which begin with a ">
" in the first column followed by a section number, and (2) Normal
ASCII Text Lines, which begin with a character other than a ">".
The DAF records do not contain these flags, but are structured as
follows:
<code>
type LINE_TYPE is (NORMAL, SECTION, UNUSED);<HR>
<HR>
type LINE is record<HR>
Str : STRING (1..SYSDEP.Screen_String_Length);<HR>
Str_Last : NATURAL := 0; -- index of last character in Str<HR>
Kind : LINE_TYPE := NORMAL;<HR>
end record;
<paragraph>
<|,14>Normal DAF Records differ from Continuation DAF Records in that
the Str of Normal DAF Records begins with two leading spaces while
the Str of Continuation DAF Records begin with a continuation mark,
which is a vertical bar (|) followed by a space. The Str fields within
the DAF Records are ready to be displayed on a VT100 screen without
concern for exceeding the width of the screen.
<paragraph>
The names of the ASCII text files of the Ada LRM are all of the form
"chapNN.doc," and the names of the DAFs will be similar: "chapNN.daf."
NN will take on the following values:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> 01 to 14 - Ada LRM Chapters
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> aa to af - Ada LRM Appendices
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> co - Ada LRM Contents
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> in - Ada LRM Index
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> fo - Ada LRM Foreward
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 6.><End Sub>
<F0> po - Ada LRM Postscript
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 7.><End Sub>
<F0> he - Help screens for the HELP command
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 8.><End Sub>
<F0> xx - Information screens for the ABOUT command
<paragraph>
<|,15>The functional flow of the Make_DAF Procedure is as follows:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,0.4,0.4,1.6,0.4,7,0,8,0)
(v6,3,65536,1.6,0.4,1.6,0.8,7,0,8,0)
(v6,4,65536,1.6,0.8,0.4,0.8,7,0,8,0)
(v6,5,65536,0.4,0.8,0.4,0.4,7,0,8,0))))
(t14,6,0,0.533333,0.6,0,7,0,0,,wst:swiss10,Open\ Next)
(t14,7,0,0.533333,0.733333,0,7,0,0,,wst:swiss10,ASCII\ Text\ File)
(v6,8,0,1,0.8,1,1.2,7,0,8,0)
(p8,10,8,5,7,127
(g9,10,0
(g9,10,0
(v6,10,65536,5.2,1.601963,5.765685,2.167648,7,0,8,0)
(v6,11,65536,5.765685,2.167648,5.2,2.733333,7,0,8,0)
(v6,12,65536,5.2,2.733333,4.634315,2.167648,7,0,8,0)
(v6,13,65536,4.634315,2.167648,5.2,1.601963,7,0,8,0))))
(p8,15,8,5,7,127
(g9,15,0
(g9,15,0
(v6,15,65536,1,1.201963,1.565685,1.767648,7,0,8,0)
(v6,16,65536,1.565685,1.767648,1,2.333333,7,0,8,0)
(v6,17,65536,1,2.333333,0.434315,1.767648,7,0,8,0)
(v6,18,65536,0.434315,1.767648,1,1.201963,7,0,8,0))))
(t14,19,0,0.666667,1.8,0,7,0,0,,wst:swiss10,Open\ OK?)
(v6,20,0,1.533333,1.8,2.4,1.8,7,0,8,0)
(p8,22,8,5,7,127
(g9,22,0
(g9,22,0
(v6,22,65536,3.565685,3.834315,4.13137,4.4,7,0,8,0)
(v6,23,65536,4.13137,4.4,3.565685,4.965685,7,0,8,0)
(v6,24,65536,3.565685,4.965685,3,4.4,7,0,8,0)
(v6,25,65536,3,4.4,3.565685,3.834315,7,0,8,0))))
(t14,26,0,3.232352,4.365685,0,7,0,0,,wst:swiss10,End\ of\ Text)
(t14,27,0,1.8,1.733333,0,7,0,0,,wst:swiss10,Yes)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,3,5.333333,4.666667,5.333333,7,0,8,0)
(v6,30,65536,4.666667,5.333333,4.666667,5.933333,7,0,8,0)
(v6,31,65536,4.666667,5.933333,3,5.933333,7,0,8,0)
(v6,32,65536,3,5.933333,3,5.333333,7,0,8,0))))
(p8,34,8,5,7,127
(g9,34,0
(g9,34,0
(v6,34,65536,1.8,2.2,3,2.2,7,0,8,0)
(v6,35,65536,3,2.2,3,2.6,7,0,8,0)
(v6,36,65536,3,2.6,1.8,2.6,7,0,8,0)
(v6,37,65536,1.8,2.6,1.8,2.2,7,0,8,0))))
(v6,38,0,2.4,1.8,2.4,2.2,7,0,8,0)
(v6,39,0,2.4,2.6,2.4,2.801963,7,0,8,0)
(p8,41,8,5,7,127
(g9,41,0
(g9,41,0
(v6,41,65536,2.4,2.801963,2.965685,3.367648,7,0,8,0)
(v6,42,65536,2.965685,3.367648,2.4,3.933333,7,0,8,0)
(v6,43,65536,2.4,3.933333,1.834315,3.367648,7,0,8,0)
(v6,44,65536,1.834315,3.367648,2.4,2.801963,7,0,8,0))))
(v6,45,0,2.933333,3.4,3.6,3.4,7,0,8,0)
(t14,46,0,2.066667,3.4,0,7,0,0,,wst:swiss10,Create\ OK?)
(t14,47,0,2,2.4,0,7,0,0,,wst:swiss10,Create\ Next)
(t14,48,0,2.2,2.533333,0,7,0,0,,wst:swiss10,DAF)
(t14,49,0,3.432352,4.565684,0,7,0,0,,wst:swiss10,File?)
(v6,50,0,3.6,3.4,3.6,3.866667,7,0,8,0)
(v6,51,0,3.6,5.333333,3.605685,4.925685,7,0,8,0)
(p8,53,8,5,7,127
(g9,53,0
(g9,53,0
(v6,53,65536,4.8,4.2,6.333333,4.2,7,0,8,0)
(v6,54,65536,6.333333,4.2,6.333333,4.6,7,0,8,0)
(v6,55,65536,6.333333,4.6,4.8,4.6,7,0,8,0)
(v6,56,65536,4.8,4.6,4.8,4.2,7,0,8,0))))
(v6,57,0,4.13137,4.4,4.8,4.4,7,0,8,0)
(v6,58,0,5.2,0.6,1.6,0.6,7,0,8,0)
(t14,59,0,3.066667,5.533333,0,7,0,0,,wst:swiss10,Read\ ASCII\ Text\ Line\,)
(t14,60,0,3.066667,5.8,0,7,0,0,,wst:swiss10,and\ Write\ DAF\ Line)
(v6,61,0,3,5.6,2.4,5.6,7,0,8,0)
(v6,62,0,2.4,5.6,2.4,4.4,7,0,8,0)
(v6,63,0,2.4,4.4,3,4.4,7,0,8,0)
(t14,64,0,3.066667,3.333333,0,7,0,0,,wst:swiss10,Yes)
(t14,65,0,4.266667,4.333333,0,7,0,0,,wst:swiss10,Yes)
(t14,66,0,4.933333,4.4,0,7,0,0,,wst:swiss10,Close\ ASCII\ Text\ File)
(t14,67,0,4.933333,4.533333,0,7,0,0,,wst:swiss10,and\ DAF)
(v6,68,0,5.2,2.733333,5.2,4.2,7,0,8,0)
(v6,69,0,5.2,1.601963,5.2,0.6,7,0,8,0)
(t14,70,0,4.8,2.2,0,7,0,0,,wst:swiss10,End\ of\ ASCII)
(t14,71,0,4.866667,2.333333,0,7,0,0,,wst:swiss10,Text\ Files?)
(t14,72,0,5.266667,1.266667,0,7,0,0,,wst:swiss10,No)
(t14,73,0,3.666667,5.133333,0,7,0,0,,wst:swiss10,No)
(p8,75,8,5,7,127
(g9,75,0
(g9,75,0
(v6,75,65536,0.4,3.2,1.6,3.2,7,0,8,0)
(v6,76,65536,1.6,3.2,1.6,3.6,7,0,8,0)
(v6,77,65536,1.6,3.6,0.4,3.6,7,0,8,0)
(v6,78,65536,0.4,3.6,0.4,3.2,7,0,8,0))))
(t14,79,0,0.466667,3.4,0,7,0,0,,wst:swiss10,Print\ Message)
(t14,80,0,0.466667,3.533333,0,7,0,0,,wst:swiss10,and\ Abort)
(v6,81,0,1,3.2,1,2.333333,7,0,8,0)
(v6,82,0,1.6,3.4,1.866667,3.4,7,0,8,0)
(t14,83,0,1.666667,3.2,0,7,0,0,,wst:swiss10,No)
(t14,84,0,1.066667,2.6,0,7,0,0,,wst:swiss10,No)
(p8,86,8,5,7,127
(g9,86,0
(g9,86,0
(v6,86,65536,3.2,1.2,4.4,1.2,7,0,8,0)
(v6,87,65536,4.4,1.2,4.4,1.6,7,0,8,0)
(v6,88,65536,4.4,1.6,3.2,1.6,7,0,8,0)
(v6,89,65536,3.2,1.6,3.2,1.2,7,0,8,0))))
(v6,90,0,3.8,2.2,4.666667,2.2,7,0,8,0)
(v6,91,0,3.8,2.2,3.8,1.6,7,0,8,0)
(t14,92,0,3.4,1.466667,0,7,0,0,,wst:swiss10,Exit\ Procedure)
(t14,93,0,3.066667,5.666667,0,7,0,0,,wst:swiss10,Format\ DAF\ Line\,)
(t14,94,0,4.133333,2.133333,0,7,0,0,,wst:swiss10,Yes)
(t14,95,0,1.2,0.2,0,7,0,0,,wst:swiss10,Start)
(g9,96,8
(v6,96,0,1,3.2,1,3,7,0,8,0)
(g9,98,1025
(p8,98,0,5,7,0
(g9,98,0
(g9,98,0
(v6,98,0,0.945275,3.049648,1,3.2,7,0,8,0)
(v6,99,0,1,3.2,1.054723,3.049648,7,0,8,0)
(v6,100,0,1.054723,3.049648,1,3.081722,7,0,8,0)
(v6,101,0,1,3.081722,0.945275,3.049648,7,0,8,0))))
(v6,102,25167905,1,3.2,1,3.2,7,127,8,0)))
(g9,103,8
(v6,103,0,1,1.2,1,1,7,0,8,0)
(g9,105,1025
(p8,105,0,5,7,0
(g9,105,0
(g9,105,0
(v6,105,0,0.945275,1.049648,1,1.2,7,0,8,0)
(v6,106,0,1,1.2,1.054723,1.049648,7,0,8,0)
(v6,107,0,1.054723,1.049648,1,1.081722,7,0,8,0)
(v6,108,0,1,1.081722,0.945275,1.049648,7,0,8,0))))
(v6,109,25167905,1,1.2,1,1.2,7,127,8,0)))
(g9,110,8
(v6,110,0,1,0.4,1,0.2,7,0,8,0)
(g9,112,1025
(p8,112,0,5,7,0
(g9,112,0
(g9,112,0
(v6,112,0,0.945275,0.249648,1,0.4,7,0,8,0)
(v6,113,0,1,0.4,1.054723,0.249648,7,0,8,0)
(v6,114,0,1.054723,0.249648,1,0.281722,7,0,8,0)
(v6,115,0,1,0.281722,0.945275,0.249648,7,0,8,0))))
(v6,116,25167905,1,0.4,1,0.4,7,127,8,0)))
(g9,117,8
(v6,117,0,2.4,2.8,2.4,2.6,7,0,8,0)
(g9,119,1025
(p8,119,0,5,7,0
(g9,119,0
(g9,119,0
(v6,119,0,2.345275,2.649648,2.4,2.8,7,0,8,0)
(v6,120,0,2.4,2.8,2.454722,2.649648,7,0,8,0)
(v6,121,0,2.454722,2.649648,2.4,2.681722,7,0,8,0)
(v6,122,0,2.4,2.681722,2.345275,2.649648,7,0,8,0))))
(v6,123,25167905,2.4,2.8,2.4,2.8,7,127,8,0)))
(g9,124,8
(v6,124,0,2.4,2.133333,2.4,1.933333,7,0,8,0)
(g9,126,1025
(p8,126,0,5,7,0
(g9,126,0
(g9,126,0
(v6,126,0,2.345275,1.982981,2.4,2.133333,7,0,8,0)
(v6,127,0,2.4,2.133333,2.454722,1.982981,7,0,8,0)
(v6,128,0,2.454722,1.982981,2.4,2.015055,7,0,8,0)
(v6,129,0,2.4,2.015055,2.345275,1.982981,7,0,8,0))))
(v6,130,25167905,2.4,2.133333,2.4,2.133333,7,127,8,0)))
(g9,131,8
(v6,131,0,1.586667,3.4,1.786667,3.4,7,0,8,0)
(g9,133,1025
(p8,133,0,5,7,0
(g9,133,0
(g9,133,0
(v6,133,0,1.737019,3.345275,1.586667,3.4,7,0,8,0)
(v6,134,0,1.586667,3.4,1.737019,3.454722,7,0,8,0)
(v6,135,0,1.737019,3.454722,1.704945,3.4,7,0,8,0)
(v6,136,0,1.704945,3.4,1.737019,3.345275,7,0,8,0))))
(v6,137,25167905,1.586667,3.4,1.586667,3.4,7,127,8,0)))
(g9,138,8
(v6,138,0,1.6,0.6,1.8,0.6,7,0,8,0)
(g9,140,1025
(p8,140,0,5,7,0
(g9,140,0
(g9,140,0
(v6,140,0,1.750352,0.545275,1.6,0.6,7,0,8,0)
(v6,141,0,1.6,0.6,1.750352,0.654723,7,0,8,0)
(v6,142,0,1.750352,0.654723,1.718278,0.6,7,0,8,0)
(v6,143,0,1.718278,0.6,1.750352,0.545275,7,0,8,0))))
(v6,144,25167905,1.6,0.6,1.6,0.6,7,127,8,0)))
(g9,145,8
(v6,145,0,3.8,1.6,3.8,1.8,7,0,8,0)
(g9,147,1025
(p8,147,0,5,7,0
(g9,147,0
(g9,147,0
(v6,147,0,3.854725,1.750352,3.8,1.6,7,0,8,0)
(v6,148,0,3.8,1.6,3.745277,1.750352,7,0,8,0)
(v6,149,0,3.745277,1.750352,3.8,1.718278,7,0,8,0)
(v6,150,0,3.8,1.718278,3.854725,1.750352,7,0,8,0))))
(v6,151,25167905,3.8,1.6,3.8,1.6,7,127,8,0)))
(g9,152,8
(v6,152,0,5.2,2.733333,5.2,2.933333,7,0,8,0)
(g9,154,1025
(p8,154,0,5,7,0
(g9,154,0
(g9,154,0
(v6,154,0,5.254725,2.883686,5.2,2.733333,7,0,8,0)
(v6,155,0,5.2,2.733333,5.145277,2.883686,7,0,8,0)
(v6,156,0,5.145277,2.883686,5.2,2.851611,7,0,8,0)
(v6,157,0,5.2,2.851611,5.254725,2.883686,7,0,8,0))))
(v6,158,25167905,5.2,2.733333,5.2,2.733333,7,127,8,0)))
(g9,159,8
(v6,159,0,3,4.4,2.8,4.4,7,0,8,0)
(g9,161,1025
(p8,161,0,5,7,0
(g9,161,0
(g9,161,0
(v6,161,0,2.849648,4.454725,3,4.4,7,0,8,0)
(v6,162,0,3,4.4,2.849648,4.345277,7,0,8,0)
(v6,163,0,2.849648,4.345277,2.881722,4.4,7,0,8,0)
(v6,164,0,2.881722,4.4,2.849648,4.454725,7,0,8,0))))
(v6,165,25167905,3,4.4,3,4.4,7,127,8,0)))
(g9,166,8
(v6,166,0,4.8,4.4,4.6,4.4,7,0,8,0)
(g9,168,1025
(p8,168,0,5,7,0
(g9,168,0
(g9,168,0
(v6,168,0,4.649648,4.454725,4.8,4.4,7,0,8,0)
(v6,169,0,4.8,4.4,4.649648,4.345277,7,0,8,0)
(v6,170,0,4.649648,4.345277,4.681722,4.4,7,0,8,0)
(v6,171,0,4.681722,4.4,4.649648,4.454725,7,0,8,0))))
(v6,172,25167905,4.8,4.4,4.8,4.4,7,127,8,0)))
(g9,173,8
(v6,173,0,3.6,3.866667,3.6,3.666667,7,0,8,0)
(g9,175,1025
(p8,175,0,5,7,0
(g9,175,0
(g9,175,0
(v6,175,0,3.545275,3.716314,3.6,3.866667,7,0,8,0)
(v6,176,0,3.6,3.866667,3.654723,3.716314,7,0,8,0)
(v6,177,0,3.654723,3.716314,3.6,3.748389,7,0,8,0)
(v6,178,0,3.6,3.748389,3.545275,3.716314,7,0,8,0))))
(v6,179,25167905,3.6,3.866667,3.6,3.866667,7,127,8,0)))
(g9,180,8
(v6,180,0,3.602786,5.333536,3.602786,5.133536,7,0,8,0)
(g9,182,1025
(p8,182,0,5,7,0
(g9,182,0
(g9,182,0
(v6,182,0,3.548062,5.183184,3.602786,5.333536,7,0,8,0)
(v6,183,0,3.602786,5.333536,3.65751,5.183184,7,0,8,0)
(v6,184,0,3.65751,5.183184,3.602786,5.215258,7,0,8,0)
(v6,185,0,3.602786,5.215258,3.548062,5.183184,7,0,8,0))))
(v6,186,25167905,3.602786,5.333536,3.602786,5.333536,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0>
<Autonum, List, 3, Tagname = "TM@zf280conn", Value = 3.2.3.><End Sub><F0>
Make_Cit Procedure
<paragraph>
The Make_CIT Procedure is used to create the CIT.ADA file from the
*.daf files (created by the Make_DAF procedure). The CIT.ADA file
contains two main elements: (1) the type CITATION_ID, which maps to
each citation in each *.daf file, and (2) the CLV (Citation Location
Vector), which identifies the associated *.daf file, the starting
DAF Record number, and the ending DAF Record number for each citation
specified in type CITATION_ID. CIT.ADA, therefore, is a hard-coded
data collection which provides a very fast way to index into the *.daf
files to locate and load a citation of interest.
<subhead>
Mapping to Requirements
<paragraph>
The Make_Cit Procedure addresses the timing requirements in Section
3.6 of the SRS by creating the CIT.ADA file, which will serve as a
memory-resident index to the citations.
<subhead>
<|,16>Design
<paragraph>
The data flow of the Make_Cit Procedure is as follows:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(g9,1,0
(v6,1,0,0.4,0.4,2,0.4,7,0,8,0)
(v6,2,0,0.4,0.8,2,0.8,7,0,8,0))
(t14,3,0,0.733333,0.666667,0,7,0,0,,wst:swiss10,Ada\ LRM\ DAFs)
(v6,4,0,1.2,0.8,1.2,2,7,0,8,0)
(v6,5,0,1.2,2,2.4,2,7,0,8,0)
(e8,6,0,2.4,1.6,4,1.6,2.4,2.4,7,127,5,7,0,8,0)
(g9,7,0
(v6,7,0,2.4,0.4,4,0.4,7,0,8,0)
(v6,8,0,2.4,0.8,4,0.8,7,0,8,0))
(t14,9,0,1.533333,2.4,0,7,0,0,,wst:swiss10,DAF\ LINE)
(v6,10,0,3.2,1.6,3.2,0.8,7,0,8,0)
(t14,11,0,1.733333,1.2,0,7,0,0,,wst:swiss10,Index\ Array\ Record)
(t14,12,0,2.666667,2,0,7,0,0,,wst:swiss10,Create\ Index\ File)
(t14,13,0,2.866667,0.666667,0,7,0,0,,wst:swiss10,Index\ Array)
(e8,14,0,4.4,1.6,6,1.6,4.4,2.4,7,127,5,7,0,8,0)
(v6,15,0,3.6,0.8,3.6,1.2,7,0,8,0)
(v6,16,0,3.6,1.2,5.2,1.2,7,0,8,0)
(v6,17,0,5.2,1.2,5.2,1.6,7,0,8,0)
(g9,18,0
(v6,18,0,4.4,3.2,6,3.2,7,0,8,0)
(v6,19,0,4.4,3.6,6,3.6,7,0,8,0))
(v6,20,0,5.2,2.4,5.2,3.2,7,0,8,0)
(t14,21,0,4.133333,0.933333,0,7,0,0,,wst:swiss10,Index\ Array\ Record)
(t14,22,0,4,2.8,0,7,0,0,,wst:swiss10,CIT.ADA\ Line)
(t14,23,0,4.8,3.466667,0,7,0,0,,wst:swiss10,File\ CIT.ADA)
(t14,24,0,4.6,2,0,7,0,0,,wst:swiss10,Create\ CIT.ADA\ File)
(g9,25,8
(v6,25,0,2.066667,2.133333,1.666667,2.133333,7,0,8,0)
(g9,27,1025
(p8,27,0,5,7,0
(g9,27,0
(g9,27,8
(v6,27,25165856,1.936026,2.133335,1.936026,2.133333,5,127,8,0)
(v6,28,0,1.936026,2.133333,1.912118,2.091922,7,0,8,0)
(v6,29,0,1.912118,2.091922,2.066667,2.133333,7,0,8,0)
(v6,30,0,2.066667,2.133333,1.912118,2.174745,7,0,8,0)
(v6,31,0,1.912118,2.174745,1.936026,2.133335,7,0,8,0))))
(v6,32,25167905,2.066667,2.133333,2.066667,2.133333,7,127,8,0))
(g9,33,1033
(e8,33,0,1.733333,2.066667,1.6,2.066667,1.733333,2.2,0,0,5,7,0,8,0)
(v6,34,25167905,1.666667,2.133333,1.666667,2.133333,7,127,8,0)))
(g9,35,8
(v6,35,0,3.066667,0.933333,3.066667,1.333333,7,0,8,0)
(g9,37,1025
(p8,37,0,5,7,0
(g9,37,0
(g9,37,8
(v6,37,25165856,3.066668,1.063974,3.066667,1.063974,5,127,8,0)
(v6,38,0,3.066667,1.063974,3.025256,1.087882,7,0,8,0)
(v6,39,0,3.025256,1.087882,3.066667,0.933333,7,0,8,0)
(v6,40,0,3.066667,0.933333,3.108079,1.087882,7,0,8,0)
(v6,41,0,3.108079,1.087882,3.066668,1.063974,7,0,8,0))))
(v6,42,25167905,3.066667,0.933333,3.066667,0.933333,7,127,8,0))
(g9,43,1033
(e8,43,0,3,1.266667,3,1.4,3.133333,1.266667,0,0,5,7,0,8,0)
(v6,44,25167905,3.066667,1.333333,3.066667,1.333333,7,127,8,0)))
(g9,45,8
(v6,45,0,4.8,1.066667,4.4,1.066667,7,0,8,0)
(g9,47,1025
(p8,47,0,5,7,0
(g9,47,0
(g9,47,8
(v6,47,25165856,4.66936,1.066668,4.66936,1.066667,5,127,8,0)
(v6,48,0,4.66936,1.066667,4.645451,1.025256,7,0,8,0)
(v6,49,0,4.645451,1.025256,4.8,1.066667,7,0,8,0)
(v6,50,0,4.8,1.066667,4.645451,1.108079,7,0,8,0)
(v6,51,0,4.645451,1.108079,4.66936,1.066668,7,0,8,0))))
(v6,52,25167905,4.8,1.066667,4.8,1.066667,7,127,8,0))
(g9,53,1033
(e8,53,0,4.466667,1,4.333333,1,4.466667,1.133333,0,0,5,7,0,8,0)
(v6,54,25167905,4.4,1.066667,4.4,1.066667,7,127,8,0)))
(g9,55,8
(v6,55,0,5,2.933333,5,2.533333,7,0,8,0)
(g9,57,1025
(p8,57,0,5,7,0
(g9,57,0
(g9,57,8
(v6,57,25165856,4.999998,2.802692,5,2.802692,5,127,8,0)
(v6,58,0,5,2.802692,5.041411,2.778783,7,0,8,0)
(v6,59,0,5.041411,2.778783,5,2.933333,7,0,8,0)
(v6,60,0,5,2.933333,4.958588,2.778783,7,0,8,0)
(v6,61,0,4.958588,2.778783,4.999998,2.802692,7,0,8,0))))
(v6,62,25167905,5,2.933333,5,2.933333,7,127,8,0))
(g9,63,1033
(e8,63,0,5.066667,2.600001,5.066666,2.466667,4.933333,2.600001,0,0,5,7,0,8,
0)
(v6,64,25167905,5,2.533334,5,2.533334,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
The DAF records are structured as follows:
<code>
type LINE_TYPE is (NORMAL, SECTION, UNUSED);<HR>
<HR>
type LINE is record<HR>
Str : STRING (1..SYSDEP.Screen_String_Length);<HR>
Str_Last : NATURAL := 0; -- index of last character in Str<HR>
Kind : LINE_TYPE := NORMAL;<HR>
end record;
<paragraph>
The DAF LINEs whose Kind are SECTION trigger the new entries in the
Index Array. The Index Array is simply an array of records that contain
the following information:
<code>
subtype FILE_ID_STRING is STRING (1..2);<HR>
<HR>
type CITATION_RECORD is record<HR>
Citation_ID : STRING (1..20);<HR>
Citation_ID_Last : NATURAL;<HR>
File_ID : FILE_ID_STRING;<HR>
Start : DAF_Handler.LINE_NUMBER;<HR>
Stop : DAF_Handler.LINE_NUMBER;<HR>
end record;
<paragraph>
<|,17>where Citation_ID contains strings like "C1P1" and "C1P2" to
identify citations (Chapter 1, Sections 1 and 2 in this case) and
to ultimately form the CITATION_ID enumeration values in the CIT.ADA
file.
<paragraph>
The CITATION_ID type in the CIT.ADA file is an enumeration type which
contains these citation IDs. For example:
<code>
type CITATION_ID is (C1P1, C1P2);
<paragraph>
would the type declaration of the type CITATION_ID if C1P1 and C1P2
were the only citation IDs. The CLV array is an array of CITATION_LOCATION
records, and, for our simple example, would resemble the following
if C1P1 and C1P2 were contained in the file "chap01.daf":
<code>
type CITATION_LOCATION is record<HR>
Chapter : STRING(1..2);<HR>
Start : DAF_Handler.LINE_NUMBER;<HR>
Stop : DAF_Handler.LINE_NUMBER;<HR>
end record;<HR>
<HR>
type CITATION_LOCATION_VECTOR is array (CITATION_ID) of CITATION_LOCATION;<HR>
<HR>
CLV : constant CITATION_LOCATION_VECTOR := (<HR>
C1P1 => ("01", 1, 23),<HR>
C1P2 => ("01", 24, 43)<HR>
);
<paragraph>
The formats for the file names were discussed in the section on the
preliminary design of the Make_DAF Procedure.
<paragraph>
In addition to the conventional citation IDs (C1 to CF), the type
CITATION_ID includes the following entries to provide mappings to
the Table of Contents, Index, Foreward, and Postscript parts of the
Ada LRM and the online help and about "citations":
<paragraph,
Left Margin = 0.50 inches,
Left Tab = 1.50/3 Inches>
<F86>Citation<Tab>Associated File<Tab>CLV Chapter<F0><HR>
CONTENTS<Tab>chapco.daf<Tab>co<HR>
FOREWARD<Tab>chapfo.daf<Tab>fo<HR>
INDEX<Tab>chapin.daf<Tab>in<HR>
POSTSCRIPT<Tab>chappo.daf<Tab>po<HR>
HELP<Tab>chaphe.daf<Tab>he<HR>
ABOUT<Tab>chapxx.daf<Tab>xx
<paragraph>
Finally, the type CITATION_ID includes the following entries to provide
mappings to the user commands (processed within the Command_Dispatcher
package and documented extensively in the SUM), since citations and
commands are both processed as commands:
<paragraph,
Left Tab = 1.50/3 Inches>
<F86>Citation ID<Tab>Associated Command<F0><HR>
ERROR<Tab>Invalid command<HR>
N<Tab>N (next screen)<HR>
P<Tab>P (previous screen)<HR>
USER_INPUT<Tab>input from the user<HR>
PRINT<Tab>PRINT (print current citation)<HR>
PS<Tab>PS (print current screen)<HR>
NEXT<Tab>NEXT (next citation)<HR>
<|,18>PREVIOUS<Tab>PREVIOUS (previous citation)<HR>
PAUSE<Tab>PAUSE (delay further processing)<HR>
PUSH<Tab>PUSH (push current citation onto location stack and select
new citation)<HR>
POP<Tab>POP (return to last citation PUSHed)<HR>
SEARCH_FIRST<Tab>/ (search from beginning of current citation for
string)<HR>
SEARCH_NEXT<Tab>// (search from current position for string)<HR>
REFRESH<Tab>REFRESH (redisplay the current screen)<HR>
QUIT<Tab>QUIT (terminate the program)
<paragraph>
The functional flow of the Make_Cit Procedure is as follows:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,0.2,0.8,1.8,0.8,7,0,8,0)
(v6,3,65536,1.8,0.8,1.8,1.2,7,0,8,0)
(v6,4,65536,1.8,1.2,0.2,1.2,7,0,8,0)
(v6,5,65536,0.2,1.2,0.2,0.8,7,0,8,0))))
(t14,6,0,0.4,1.066667,0,7,0,0,,wst:swiss10,Create\ Index\ File)
(v6,7,0,1,1.2,1,1.6,7,0,8,0)
(p8,9,8,5,7,127
(g9,9,0
(g9,9,0
(v6,9,65536,0.2,1.6,2.2,1.6,7,0,8,0)
(v6,10,65536,2.2,1.6,2.2,2.4,7,0,8,0)
(v6,11,65536,2.2,2.4,0.2,2.4,7,0,8,0)
(v6,12,65536,0.2,2.4,0.2,1.6,7,0,8,0))))
(t14,13,0,0.466667,1.8,0,7,0,0,,wst:swiss10,Place\ citation\ information)
(t14,14,0,0.466667,1.933333,0,7,0,0,,wst:swiss10,from\ the\ files\ chap01.daf)
(t14,15,0,0.466667,2.066667,0,7,0,0,,wst:swiss10,to\ chapaf.daf\ into\ the)
(t14,16,0,0.466667,2.2,0,7,0,0,,wst:swiss10,Index\ Array)
(v6,17,0,1,2.4,1,2.8,7,0,8,0)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,0.2,2.8,2.2,2.8,7,0,8,0)
(v6,20,65536,2.2,2.8,2.2,3.6,7,0,8,0)
(v6,21,65536,2.2,3.6,0.2,3.6,7,0,8,0)
(v6,22,65536,0.2,3.6,0.2,2.8,7,0,8,0))))
(t14,23,0,0.333333,3.066667,0,7,0,0,,wst:swiss10,Place\ line\ counts\ as\ citat
ion)
(t14,24,0,0.333333,3.2,0,7,0,0,,wst:swiss10,information\ from\ the\ files)
(t14,25,0,0.333333,3.333333,0,7,0,0,,wst:swiss10,chapco\,\ fo\,\ in\,\ po\,\ he
\,\ xx.daf)
(t14,26,0,0.333333,3.466667,0,7,0,0,,wst:swiss10,into\ the\ Index\ Array)
(v6,27,0,1,3.6,1,4,7,0,8,0)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,2.6,0.8,4.2,0.8,7,0,8,0)
(v6,30,65536,4.2,0.8,4.2,1.2,7,0,8,0)
(v6,31,65536,4.2,1.2,2.6,1.2,7,0,8,0)
(v6,32,65536,2.6,1.2,2.6,0.8,7,0,8,0))))
(t14,33,0,2.666667,1,0,7,0,0,,wst:swiss10,Point\ to\ first\ Index\ Array)
(v6,34,0,1,4,2.333333,4,7,0,8,0)
(v6,35,0,2.333333,4,2.333333,0.133333,7,0,8,0)
(v6,36,0,2.333333,0.133333,3.4,0.133333,7,0,8,0)
(v6,37,0,3.4,0.133333,3.4,0.8,7,0,8,0)
(v6,38,0,3.4,1.2,3.4,1.6,7,0,8,0)
(p8,40,8,5,7,127
(g9,40,0
(g9,40,0
(v6,40,65536,2.6,1.6,4.2,1.6,7,0,8,0)
(v6,41,65536,4.2,1.6,4.2,2,7,0,8,0)
(v6,42,65536,4.2,2,2.6,2,7,0,8,0)
(v6,43,65536,2.6,2,2.6,1.6,7,0,8,0))))
(t14,44,0,2.933333,1.866667,0,7,0,0,,wst:swiss10,Create\ CIT.ADA)
(v6,45,0,3.4,2,3.4,2.4,7,0,8,0)
(p8,47,8,5,7,127
(g9,47,0
(g9,47,0
(v6,47,65536,2.466667,2.4,4.266667,2.4,7,0,8,0)
(v6,48,65536,4.266667,2.4,4.266667,2.8,7,0,8,0)
(v6,49,65536,4.266667,2.8,2.466667,2.8,7,0,8,0)
(v6,50,65536,2.466667,2.8,2.466667,2.4,7,0,8,0))))
(t14,51,0,2.533333,2.6,0,7,0,0,,wst:swiss10,Build\ type\ CITATION_ID)
(t14,52,0,2.533333,2.733333,0,7,0,0,,wst:swiss10,from\ records\ in\ Index\ Arra
y)
(v6,53,0,3.4,2.8,3.4,3.2,7,0,8,0)
(p8,55,8,5,7,127
(g9,55,0
(g9,55,0
(v6,55,65536,2.6,3.2,4.2,3.2,7,0,8,0)
(v6,56,65536,4.2,3.2,4.2,3.8,7,0,8,0)
(v6,57,65536,4.2,3.8,2.6,3.8,7,0,8,0)
(v6,58,65536,2.6,3.8,2.6,3.2,7,0,8,0))))
(t14,59,0,2.666667,3.4,0,7,0,0,,wst:swiss10,Finish\ type\ CITATION_ID)
(t14,60,0,2.666667,3.533333,0,7,0,0,,wst:swiss10,with\ citations\ from)
(t14,61,0,2.666667,3.666667,0,7,0,0,,wst:swiss10,ERROR\ on\ to\ QUIT)
(p8,63,8,5,7,127
(g9,63,0
(g9,63,0
(v6,63,65536,4.6,0.8,6.2,0.8,7,0,8,0)
(v6,64,65536,6.2,0.8,6.2,1.2,7,0,8,0)
(v6,65,65536,6.2,1.2,4.6,1.2,7,0,8,0)
(v6,66,65536,4.6,1.2,4.6,0.8,7,0,8,0))))
(v6,67,0,3.4,3.8,3.4,4,7,0,8,0)
(v6,68,0,3.4,4,4.333333,4,7,0,8,0)
(v6,69,0,4.333333,4,4.333333,0.133333,7,0,8,0)
(v6,70,0,4.333333,0.133333,5.4,0.133333,7,0,8,0)
(v6,71,0,5.4,0.133333,5.4,0.8,7,0,8,0)
(v6,72,0,5.4,1.2,5.4,1.6,7,0,8,0)
(p8,74,8,5,7,127
(g9,74,0
(g9,74,0
(v6,74,65536,4.466667,1.6,6.266667,1.6,7,0,8,0)
(v6,75,65536,6.266667,1.6,6.266667,2,7,0,8,0)
(v6,76,65536,6.266667,2,4.466667,2,7,0,8,0)
(v6,77,65536,4.466667,2,4.466667,1.6,7,0,8,0))))
(t14,78,0,4.533333,1.8,0,7,0,0,,wst:swiss10,Build\ CITATION_LOCATION)
(t14,79,0,4.533333,1.933333,0,7,0,0,,wst:swiss10,type\ definition)
(v6,80,0,5.4,2,5.4,2.4,7,0,8,0)
(p8,82,8,5,7,127
(g9,82,0
(g9,82,0
(v6,82,65536,4.6,2.4,6.2,2.4,7,0,8,0)
(v6,83,65536,6.2,2.4,6.2,3.066667,7,0,8,0)
(v6,84,65536,6.2,3.066667,4.6,3.066667,7,0,8,0)
(v6,85,65536,4.6,3.066667,4.6,2.4,7,0,8,0))))
(t14,86,0,4.666667,2.666667,0,7,0,0,,wst:swiss10,Build\ CITATION_)
(t14,87,0,4.666667,2.933333,0,7,0,0,,wst:swiss10,type\ definition)
(t14,88,0,4.666667,2.8,0,7,0,0,,wst:swiss10,\ \ LOCATION_VECTOR)
(v6,89,0,5.4,3.066667,5.4,3.6,7,0,8,0)
(p8,91,8,5,7,127
(g9,91,0
(g9,91,0
(v6,91,65536,4.6,3.6,6.2,3.6,7,0,8,0)
(v6,92,65536,6.2,3.6,6.2,4,7,0,8,0)
(v6,93,65536,6.2,4,4.6,4,7,0,8,0)
(v6,94,65536,4.6,4,4.6,3.6,7,0,8,0))))
(t14,95,0,4.733333,3.8,0,7,0,0,,wst:swiss10,Build\ array\ CLV)
(t14,96,0,4.733333,3.933333,0,7,0,0,,wst:swiss10,from\ recs\ in\ Index\ Array)
(v6,97,0,5.4,4,5.4,4.4,7,0,8,0)
(p8,99,8,5,7,127
(g9,99,0
(g9,99,0
(v6,99,65536,4.6,4.4,6.2,4.4,7,0,8,0)
(v6,100,65536,6.2,4.4,6.2,5,7,0,8,0)
(v6,101,65536,6.2,5,4.6,5,7,0,8,0)
(v6,102,65536,4.6,5,4.6,4.4,7,0,8,0))))
(t14,103,0,4.733333,4.6,0,7,0,0,,wst:swiss10,Finish\ array\ CLV)
(t14,104,0,4.733333,4.733333,0,7,0,0,,wst:swiss10,with\ citations\ from)
(t14,105,0,4.733333,4.866667,0,7,0,0,,wst:swiss10,ERROR\ on\ to\ QUIT)
(v6,106,0,5.4,5,5.4,5.466667,7,0,8,0)
(p8,108,8,5,7,127
(g9,108,0
(g9,108,0
(v6,108,65536,4.6,5.466667,6.2,5.466667,7,0,8,0)
(v6,109,65536,6.2,5.466667,6.2,5.866667,7,0,8,0)
(v6,110,65536,6.2,5.866667,4.6,5.866667,7,0,8,0)
(v6,111,65536,4.6,5.866667,4.6,5.466667,7,0,8,0))))
(t14,112,0,4.666667,5.733333,0,7,0,0,,wst:swiss10,Close\ CIT.ADA)
(t14,113,0,1.133333,0.6,0,7,0,0,,wst:swiss10,Start)
(t14,114,0,2.666667,1.133333,0,7,0,0,,wst:swiss10,element)
(t14,115,0,4.666667,1,0,7,0,0,,wst:swiss10,Point\ to\ first\ Index\ Array)
(t14,116,0,4.666667,1.133333,0,7,0,0,,wst:swiss10,element)
(g9,117,8
(v6,117,0,1,2.8,1,2.6,7,0,8,0)
(g9,119,1025
(p8,119,0,5,7,0
(g9,119,0
(g9,119,0
(v6,119,0,0.945275,2.649648,1,2.8,7,0,8,0)
(v6,120,0,1,2.8,1.054723,2.649648,7,0,8,0)
(v6,121,0,1.054723,2.649648,1,2.681722,7,0,8,0)
(v6,122,0,1,2.681722,0.945275,2.649648,7,0,8,0))))
(v6,123,25167905,1,2.8,1,2.8,7,127,8,0)))
(g9,124,8
(v6,124,0,1,1.6,1,1.4,7,0,8,0)
(g9,126,1025
(p8,126,0,5,7,0
(g9,126,0
(g9,126,0
(v6,126,0,0.945275,1.449648,1,1.6,7,0,8,0)
(v6,127,0,1,1.6,1.054723,1.449648,7,0,8,0)
(v6,128,0,1.054723,1.449648,1,1.481722,7,0,8,0)
(v6,129,0,1,1.481722,0.945275,1.449648,7,0,8,0))))
(v6,130,25167905,1,1.6,1,1.6,7,127,8,0)))
(g9,131,8
(v6,131,0,1,0.8,1,0.6,7,0,8,0)
(g9,133,1025
(p8,133,0,5,7,0
(g9,133,0
(g9,133,0
(v6,133,0,0.945275,0.649648,1,0.8,7,0,8,0)
(v6,134,0,1,0.8,1.054723,0.649648,7,0,8,0)
(v6,135,0,1.054723,0.649648,1,0.681722,7,0,8,0)
(v6,136,0,1,0.681722,0.945275,0.649648,7,0,8,0))))
(v6,137,25167905,1,0.8,1,0.8,7,127,8,0)))
(g9,138,8
(v6,138,0,3.4,0.8,3.4,0.6,7,0,8,0)
(g9,140,1025
(p8,140,0,5,7,0
(g9,140,0
(g9,140,0
(v6,140,0,3.345275,0.649648,3.4,0.8,7,0,8,0)
(v6,141,0,3.4,0.8,3.454722,0.649648,7,0,8,0)
(v6,142,0,3.454722,0.649648,3.4,0.681722,7,0,8,0)
(v6,143,0,3.4,0.681722,3.345275,0.649648,7,0,8,0))))
(v6,144,25167905,3.4,0.8,3.4,0.8,7,127,8,0)))
(g9,145,8
(v6,145,0,3.4,1.6,3.4,1.4,7,0,8,0)
(g9,147,1025
(p8,147,0,5,7,0
(g9,147,0
(g9,147,0
(v6,147,0,3.345275,1.449648,3.4,1.6,7,0,8,0)
(v6,148,0,3.4,1.6,3.454722,1.449648,7,0,8,0)
(v6,149,0,3.454722,1.449648,3.4,1.481722,7,0,8,0)
(v6,150,0,3.4,1.481722,3.345275,1.449648,7,0,8,0))))
(v6,151,25167905,3.4,1.6,3.4,1.6,7,127,8,0)))
(g9,152,8
(v6,152,0,3.4,2.4,3.4,2.2,7,0,8,0)
(g9,154,1025
(p8,154,0,5,7,0
(g9,154,0
(g9,154,0
(v6,154,0,3.345275,2.249648,3.4,2.4,7,0,8,0)
(v6,155,0,3.4,2.4,3.454722,2.249648,7,0,8,0)
(v6,156,0,3.454722,2.249648,3.4,2.281722,7,0,8,0)
(v6,157,0,3.4,2.281722,3.345275,2.249648,7,0,8,0))))
(v6,158,25167905,3.4,2.4,3.4,2.4,7,127,8,0)))
(g9,159,8
(v6,159,0,3.4,3.2,3.4,3,7,0,8,0)
(g9,161,1025
(p8,161,0,5,7,0
(g9,161,0
(g9,161,0
(v6,161,0,3.345275,3.049648,3.4,3.2,7,0,8,0)
(v6,162,0,3.4,3.2,3.454722,3.049648,7,0,8,0)
(v6,163,0,3.454722,3.049648,3.4,3.081722,7,0,8,0)
(v6,164,0,3.4,3.081722,3.345275,3.049648,7,0,8,0))))
(v6,165,25167905,3.4,3.2,3.4,3.2,7,127,8,0)))
(g9,166,8
(v6,166,0,5.4,5.466667,5.4,5.266667,7,0,8,0)
(g9,168,1025
(p8,168,0,5,7,0
(g9,168,0
(g9,168,0
(v6,168,0,5.345275,5.316314,5.4,5.466667,7,0,8,0)
(v6,169,0,5.4,5.466667,5.454722,5.316314,7,0,8,0)
(v6,170,0,5.454722,5.316314,5.4,5.348389,7,0,8,0)
(v6,171,0,5.4,5.348389,5.345275,5.316314,7,0,8,0))))
(v6,172,25167905,5.4,5.466667,5.4,5.466667,7,127,8,0)))
(g9,173,8
(v6,173,0,5.4,4.4,5.4,4.2,7,0,8,0)
(g9,175,1025
(p8,175,0,5,7,0
(g9,175,0
(g9,175,0
(v6,175,0,5.345275,4.249648,5.4,4.4,7,0,8,0)
(v6,176,0,5.4,4.4,5.454722,4.249648,7,0,8,0)
(v6,177,0,5.454722,4.249648,5.4,4.281722,7,0,8,0)
(v6,178,0,5.4,4.281722,5.345275,4.249648,7,0,8,0))))
(v6,179,25167905,5.4,4.4,5.4,4.4,7,127,8,0)))
(g9,180,8
(v6,180,0,5.4,3.6,5.4,3.4,7,0,8,0)
(g9,182,1025
(p8,182,0,5,7,0
(g9,182,0
(g9,182,0
(v6,182,0,5.345275,3.449648,5.4,3.6,7,0,8,0)
(v6,183,0,5.4,3.6,5.454722,3.449648,7,0,8,0)
(v6,184,0,5.454722,3.449648,5.4,3.481722,7,0,8,0)
(v6,185,0,5.4,3.481722,5.345275,3.449648,7,0,8,0))))
(v6,186,25167905,5.4,3.6,5.4,3.6,7,127,8,0)))
(g9,187,8
(v6,187,0,5.4,2.373333,5.4,2.173333,7,0,8,0)
(g9,189,1025
(p8,189,0,5,7,0
(g9,189,0
(g9,189,0
(v6,189,0,5.345275,2.222981,5.4,2.373333,7,0,8,0)
(v6,190,0,5.4,2.373333,5.454722,2.222981,7,0,8,0)
(v6,191,0,5.454722,2.222981,5.4,2.255055,7,0,8,0)
(v6,192,0,5.4,2.255055,5.345275,2.222981,7,0,8,0))))
(v6,193,25167905,5.4,2.373333,5.4,2.373333,7,127,8,0)))
(g9,194,8
(v6,194,0,5.4,1.6,5.4,1.4,7,0,8,0)
(g9,196,1025
(p8,196,0,5,7,0
(g9,196,0
(g9,196,0
(v6,196,0,5.345275,1.449648,5.4,1.6,7,0,8,0)
(v6,197,0,5.4,1.6,5.454722,1.449648,7,0,8,0)
(v6,198,0,5.454722,1.449648,5.4,1.481722,7,0,8,0)
(v6,199,0,5.4,1.481722,5.345275,1.449648,7,0,8,0))))
(v6,200,25167905,5.4,1.6,5.4,1.6,7,127,8,0)))
(g9,201,8
(v6,201,0,5.4,0.8,5.4,0.6,7,0,8,0)
(g9,203,1025
(p8,203,0,5,7,0
(g9,203,0
(g9,203,0
(v6,203,0,5.345275,0.649648,5.4,0.8,7,0,8,0)
(v6,204,0,5.4,0.8,5.454722,0.649648,7,0,8,0)
(v6,205,0,5.454722,0.649648,5.4,0.681722,7,0,8,0)
(v6,206,0,5.4,0.681722,5.345275,0.649648,7,0,8,0))))
(v6,207,25167905,5.4,0.8,5.4,0.8,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.4.><End Sub>
<F0> SYSDEP Package
<paragraph>
The SYSDEP Package is a package which serves as a collection for the
system dependency information. It serves to isolate all system dependencies
in one single location so that future adaptation of the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> to
different environments will be expedited. Writing the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> in
Ada is a first step toward
<|,19>generating a system which ports to a variety of platforms, and
during development the <LRM_Name, Subcomponent = yes><F40>Ada LRM
Reader<End Sub><F0> will be compiled on several different systems
to test its portability. However, there are some aspects of the design
of such a system which Ada cannot by itself support the portability
of the software. Directory names are a good example, which may take
the form of "/major_dir/sub_dir" on one system (UNIX), "drive:\major_dir\sub_di
r" on another system (MSDOS), or "disk:[major_dir.sub_dir]" on yet
another system (VMS). The SYSDEP Package (short for SYStem DEPendency
Package) acts as a container to limit these dependencies to only one
CSC of the CSCI.
<subhead>
Mapping to Requirements
<paragraph>
The SYSDEP Package meets requirements 3.5 and 3.5.1 in the SRS.
<subhead>
Design
<paragraph>
The SYSDEP Package will contain only constants the the associated
type definitions. The constants will be as reusable as possible:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> Constant STRING objects will be explicitly unconstrained, allowing
a greater ease of modification. For example, the form
<paragraph,
Alignment = Center,
Font = F92>
LRM_Files_Directory : constant STRING := "/reader/ada_lrm";
<paralist>
will be used so that changing this string to some other value will
require only editing the string.
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Integer-like constants will be universal integers so they may
map to any type. The following is a universal integer:
<paragraph,
Alignment = Center,
Font = F92>
Max_String_Length : constant := 110; -- chars
<paragraph>
The SYSDEP Package contains the following constants:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> LRM_Files_Directory - This STRING is the name of the directory
containing the LRM DAFs ("chapNN.daf") of a form that a file name
may simply be appended to it.
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Program_Name - This STRING is the name of the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> with
a version number.
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> Print_File_Name - This STRING is the name of the file created
in the user's current directory when the PRINT and PS commands are
executed.
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> Citation_Stack_Depth - This universal integer is the size of
the location stack within the LRM_Reader; it is equal to the maximum
number of citations which may be PUSHed (recommended value: 20).
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> Screen_Width, Text_Line_Count, Command_Line_Number, Error_Message_Line_Num
ber, Screen_String_Length, and Search_Pointer_Column - These universal
integers define various attributes of the VT100 display screen. In
addition, Screen_String_Length is an attribute of the Str field a
DAF record.
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 6.><End Sub>
<F0> Max_String_Length - This universal integer is the maximum length
of a string from the console or a text data file. Examination has
shown that the Ada LRM ASCII text files have lines as long as 102
characters, so this value should be a little larger than 102 in order
to assure that buffers are not overflowed (recommended value: 110).
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 7.><End Sub>
<F0> Max_Number_of_Citations - This universal integer is the maximum
number of citations within a single DAF. Examination has shown that
the Ada LRM ASCII text files have a maximum of 34 cita
<|,20>tions in a single file, and these files will map directly to
the DAFs, so this value should be a little larger than 34 in order
to assure that buffers are not overflowed (recommended value: 40).
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 8.><End Sub>
<F0> Total_Number_of_Citations - This universal integer is the total
number of citations in all the *.daf files. Examination has shown
that the *.daf files have 214 citations, so this value should be a
little larger than 214 in order to assure that buffers are not overflowed
(recommended value: 230).
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 9.><End Sub>
<F0> Max_Number_of_Screens - This universal integer is the maximum
number of screens which may be allocated for a single citation. Examination
has shown that the Ada LRM ASCII text files have a maximum of 5,800
lines in a single file (the index), so, rounding this up to 6,000
for safety, this number should be no less than 6000 lines/22 lines
per screen (recommended value: 273).
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 10.><End Sub>
<F0> Full_Copyright_Notice and Intro_Copyright_Notice - These STRING
constants are copyright notices which are (1) simply embedded in the
code (that is the only purpose of the Full_Copyright_Notice aside
from acting as a copyright in the SYSDEP package itself) or (2) displayed
to the user when a task (such as the LRM_Reader, Make_Cit, or Make_DAF)
starts.
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.5.><End Sub>
<F0> Citation_Definition Package
<paragraph>
The Citation_Definition Package was discussed in some detail earlier
when the Make_Cit Procedure was discussed. See the section on Make_Cit
(Section <Ref, Auto #, Value = 3.2.3., Tag = "TM@zf280conn">) for
further information.
<subhead>
Mapping to Requirements
<paragraph>
The Citation_Definition Package was created to address the timing
requirements in Section 3.6 of the SRS. It provides a program-resident
index into the *.daf files for each citation, greatly speeding program
startup and routine operation by not requiring this information to
be accessed from disk on a periodic basis.
<subhead>
Design
<paragraph>
The Citation_Definition Package is created by the Make_Cit Procedure.
It consists of three basic components:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> Type CITATION_ID, an enumerated type identifying each citation
in the Ada LRM, the table of contents, the index, the foreward, the
postscript, the HELP citation for online documentation in the use
of the <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0>,
the ABOUT citation, the ERROR condition, the USER_INPUT condition,
and the various commands (N, P, etc.) to which the Command_Dispatcher
responds. Type CITATION_ID is of the general form:
<code>
type CITATION_ID is (<HR>
C1, -- chapter, section, subsection references<HR>
C1P1,<HR>
C1P1P1,<HR>
-- detail omitted<HR>
CA, -- appendices<HR>
CB,<HR>
CC,<HR>
CD,<HR>
CE,<HR>
CF,<HR>
CONTENTS, -- special parts of the Ada LRM<HR>
FOREWARD,<HR>
INDEX,<HR>
POSTSCRIPT,<HR>
<|,21> HELP, -- HELP and ABOUT citations<HR>
ABOUT,<HR>
ERROR, -- ERROR condition<HR>
N, P, -- commands, including USER_INPUT<HR>
-- detail omitted<HR>
QUIT<HR>
);
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Types CITATION_LOCATION and CITATION_LOCATION_VECTOR, which are
used to define the CLV array. These types are:
<code>
type CITATION_LOCATION is record<HR>
Chapter : STRING(1..2);<HR>
Start : DAF_Handler.LINE_NUMBER;<HR>
Stop : DAF_Handler.LINE_NUMBER;<HR>
end record;<HR>
<HR>
type CITATION_LOCATION_VECTOR is array (CITATION) of CITATION_LOCATION;
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> The CLV array, which identifies the *.daf file and the starting
and ending record numbers of that citation within the indicated *.daf
file. The general format of the CLV array is:
<code>
CLV : constant CITATION_LOCATION_VECTOR := (<HR>
C1 => ("01", 23, 46), -- chapters, sections, subsections<HR>
C1P1 => ("01", 47, 55),<HR>
C1P1P1 => ("01", 56, 120),<HR>
-- detail omitted<HR>
CA => ("aa", 24, 506), -- appendices<HR>
CB => ("ab", 23, 175),<HR>
-- detail omitted<HR>
CONTENTS => ("co", 1, 284), -- special parts of the Ada LRM<HR>
FOREWARD => ("fo", 1, 81),<HR>
INDEX => ("in", 1, 5833),<HR>
POSTSCRIPT => ("po", 1, 90),<HR>
HELP => ("he", 1, 38), -- HELP and ABOUT citations<HR>
ABOUT => ("xx", 1, 12),<HR>
ERROR => (" ", 1, 1), -- the commands start here<HR>
N => (" ", 1, 1),<HR>
-- detail omitted<HR>
QUIT => (" ", 1, 1)<HR>
);
<paralist>
The Chapter field in the CLV array was designed to easily allow the
creation of the *.doc and *.daf file names associated with a given
citation. Note that the *.doc and *.daf file names associated with
a citation are easily created using the CLV array: <F92>DOC_File_Name
= "chap" & CLV(Citation).Chapter & ".doc"
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.6.><End Sub>
<F0> DAF_Handler Package
<paragraph>
The DAF_Handler Package implements a passive object which provides
methods to create and manipulate DAFs (Direct Access Files).
<subhead>
<|,22>Mapping to Requirements
<paragraph>
DAFs are employed primarily to address the timing requirements in
Section 3.6 of the SRS. DAFs implement the LRM Data Files and the
Ada LRM Reader Support Files identified in Section 3.4 of the SRS.
<subhead>
Design
<paragraph>
The DAF_Handler Package presents the following sets of methods, types,
data, and exceptions in its interface:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6 inches,
Diagram =
V6,
(g9,1,0
(e8,1,0,0.4,0.133333,1.866667,0.133333,0.4,0.533333,7,127,5,7,0,8,0)
(t14,2,0,0.8,0.4,0,7,0,0,,wst:swiss10,LINE_TYPE)
(e8,3,0,0.4,0.666667,1.866667,0.666667,0.4,1.066667,7,127,5,7,0,8,0)
(t14,4,0,1,0.933333,0,7,0,0,,wst:swiss10,LINE)
(e8,5,0,0.4,1.2,1.866667,1.2,0.4,1.6,7,127,5,7,0,8,0)
(t14,6,0,0.733333,1.466667,0,7,0,0,,wst:swiss10,LINE_NUMBER)
(e8,7,0,0.4,1.733333,1.866667,1.733333,0.4,2.133333,7,127,5,7,0,8,0)
(t14,8,0,0.866667,2,0,7,0,0,,wst:swiss10,DAF_ID)
(e8,9,0,3.333333,0.133333,6,0.133333,3.333333,0.533333,7,127,5,7,0,8,0)
(t14,10,0,3.866667,0.4,0,7,0,0,,wst:swiss10,DAF_CREATION_ERROR)
(e8,11,0,3.333333,0.666667,6,0.666667,3.333333,1.066667,7,127,5,7,0,8,0)
(t14,12,0,4.066667,0.933333,0,7,0,0,,wst:swiss10,FILE_NOT_FOUND)
(e8,13,0,3.333333,1.2,6,1.2,3.333333,1.6,7,127,5,7,0,8,0)
(t14,14,0,4.2,1.466667,0,7,0,0,,wst:swiss10,NO_DAF_OPEN)
(e8,15,0,3.333333,1.733333,6,1.733333,3.333333,2.133333,7,127,5,7,0,8,0)
(t14,16,0,4.266667,2,0,7,0,0,,wst:swiss10,READ_ERROR)
(e8,17,0,3.333333,2.266667,6,2.266667,3.333333,2.666667,7,127,5,7,0,8,0)
(t14,18,0,4.066667,2.533333,0,7,0,0,,wst:swiss10,STACK_OVERFLOW)
(e8,19,0,3.333333,2.866667,6,2.866667,3.333333,3.266667,7,127,5,7,0,8,0)
(t14,20,0,4,3.133333,0,7,0,0,,wst:swiss10,UNEXPECTED_ERROR)
(p8,22,8,5,7,127
(g9,22,0
(g9,22,0
(v6,22,65536,4.4,3.533333,6,3.533333,7,0,8,0)
(v6,23,65536,6,3.533333,6,3.933333,7,0,8,0)
(v6,24,65536,6,3.933333,4.4,3.933333,7,0,8,0)
(v6,25,65536,4.4,3.933333,4.4,3.533333,7,0,8,0))))
(t14,26,0,4.533333,3.8,0,7,0,0,,wst:swiss10,Create)
(p8,28,8,5,7,127
(g9,28,0
(g9,28,0
(v6,28,65536,4.4,4.133333,6,4.133333,7,0,8,0)
(v6,29,65536,6,4.133333,6,4.533333,7,0,8,0)
(v6,30,65536,6,4.533333,4.4,4.533333,7,0,8,0)
(v6,31,65536,4.4,4.533333,4.4,4.133333,7,0,8,0))))
(t14,32,0,4.533333,4.4,0,7,0,0,,wst:swiss10,Write)
(p8,34,8,5,7,127
(g9,34,0
(g9,34,0
(v6,34,65536,4.4,4.733333,6,4.733333,7,0,8,0)
(v6,35,65536,6,4.733333,6,5.133333,7,0,8,0)
(v6,36,65536,6,5.133333,4.4,5.133333,7,0,8,0)
(v6,37,65536,4.4,5.133333,4.4,4.733333,7,0,8,0))))
(t14,38,0,4.533333,5,0,7,0,0,,wst:swiss10,Close_Create)
(p8,40,8,5,7,127
(g9,40,0
(g9,40,0
(v6,40,65536,0.4,2.4,2,2.4,7,0,8,0)
(v6,41,65536,2,2.4,2,2.8,7,0,8,0)
(v6,42,65536,2,2.8,0.4,2.8,7,0,8,0)
(v6,43,65536,0.4,2.8,0.4,2.4,7,0,8,0))))
(p8,45,8,5,7,127
(g9,45,0
(g9,45,0
(v6,45,65536,0.4,3,2,3,7,0,8,0)
(v6,46,65536,2,3,2,3.4,7,0,8,0)
(v6,47,65536,2,3.4,0.4,3.4,7,0,8,0)
(v6,48,65536,0.4,3.4,0.4,3,7,0,8,0))))
(p8,50,8,5,7,127
(g9,50,0
(g9,50,0
(v6,50,65536,0.4,3.533333,2,3.533333,7,0,8,0)
(v6,51,65536,2,3.533333,2,3.933333,7,0,8,0)
(v6,52,65536,2,3.933333,0.4,3.933333,7,0,8,0)
(v6,53,65536,0.4,3.933333,0.4,3.533333,7,0,8,0))))
(p8,55,8,5,7,127
(g9,55,0
(g9,55,0
(v6,55,65536,0.4,4.066667,2,4.066667,7,0,8,0)
(v6,56,65536,2,4.066667,2,4.466667,7,0,8,0)
(v6,57,65536,2,4.466667,0.4,4.466667,7,0,8,0)
(v6,58,65536,0.4,4.466667,0.4,4.066667,7,0,8,0))))
(p8,60,8,5,7,127
(g9,60,0
(g9,60,0
(v6,60,65536,0.4,4.666667,2,4.666667,7,0,8,0)
(v6,61,65536,2,4.666667,2,5.066667,7,0,8,0)
(v6,62,65536,2,5.066667,0.4,5.066667,7,0,8,0)
(v6,63,65536,0.4,5.066667,0.4,4.666667,7,0,8,0))))
(p8,65,8,5,7,127
(g9,65,0
(g9,65,0
(v6,65,65536,0.4,5.266667,2,5.266667,7,0,8,0)
(v6,66,65536,2,5.266667,2,5.666667,7,0,8,0)
(v6,67,65536,2,5.666667,0.4,5.666667,7,0,8,0)
(v6,68,65536,0.4,5.666667,0.4,5.266667,7,0,8,0))))
(t14,69,0,0.533333,2.666667,0,7,0,0,,wst:swiss10,Open)
(t14,70,0,0.533333,3.266667,0,7,0,0,,wst:swiss10,Is_Open)
(t14,71,0,0.533333,3.8,0,7,0,0,,wst:swiss10,Is_End_of_File)
(t14,72,0,0.533333,4.333333,0,7,0,0,,wst:swiss10,Read)
(t14,73,0,0.533333,4.933333,0,7,0,0,,wst:swiss10,Read_Next)
(t14,74,0,0.533333,5.533333,0,7,0,0,,wst:swiss10,Close)
(p8,76,8,5,7,127
(g9,76,0
(g9,76,0
(v6,76,65536,0.4,0,6,0,7,0,8,0)
(v6,77,65536,6,0,6,5.933333,7,0,8,0)
(v6,78,65536,6,5.933333,0.4,5.933333,7,0,8,0)
(v6,79,65536,0.4,5.933333,0.4,0,7,0,8,0))))
(t14,80,0,2.066667,0.266667,0,7,0,0,,wst:swiss14,DAF_Handler)
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
In this OID symbol, the short ovals represent data types, the long
ovals represent exceptions, and the small rectangles represent subprograms.
Details on the data types are presented in this SDD, Section <Ref, Auto #, Value = 4.3., Tag = aV5?f3caconn>
<subhead,
Begin New Page = yes>
<|,23>CSC Specification
<paragraph>
The following is the specification of the DAF_Handler Package:
<codepara>
with SYSDEP;<HR>
package DAF_Handler is<HR>
-- Handler for Direct Access Files (DAFs)<HR>
<HR>
-- Types of LINEs (records) in DAFs<HR>
type LINE_TYPE is (NORMAL, SECTION, UNUSED);<HR>
<HR>
-- The LINE is the record of a DAF<HR>
type LINE is record<HR>
Str : STRING (1..SYSDEP.Screen_String_Length);<HR>
Str_Last : NATURAL := 0; -- index of last char in Str<HR>
Kind : LINE_TYPE := NORMAL;<HR>
end record;<HR>
<HR>
subtype LINE_NUMBER is NATURAL range 1..NATURAL'LAST;<HR>
<HR>
subtype DAF_ID is NATURAL range 0..SYSDEP.Citation_Stack_Depth;<HR>
<HR>
-- Exceptions<HR>
DAF_CREATION_ERROR : exception;<HR>
FILE_NOT_FOUND : exception;<HR>
NO_DAF_OPEN : exception;<HR>
READ_ERROR : exception;<HR>
WRITE_ERROR : exception;<HR>
STACK_OVERFLOW : exception;<HR>
UNEXPECTED_ERROR : exception;<HR>
<HR>
-- Subprograms to create a DAF file<HR>
procedure Create (File_Name : in STRING);<HR>
-- Create a DAF file<HR>
<HR>
procedure Write (Item : in STRING);<HR>
-- Write a string to a DAF file<HR>
<HR>
procedure Close_Create;<HR>
-- Close a DAF file<HR>
<HR>
-- Subprograms to read DAF files<HR>
function Open (File_Name : in STRING) return DAF_ID;<HR>
-- Open an existing DAF file<HR>
<HR>
function Is_Open (ID : in DAF_ID) return BOOLEAN;<HR>
-- Determine if the DAF file is currently open<HR>
<HR>
function Is_End_of_File (ID : in DAF_ID) return BOOLEAN;<HR>
-- Determine if the end of a DAF file has been reached<HR>
<HR>
function Read (ID : in DAF_ID;<HR>
Lnum : in LINE_NUMBER) return LINE;<HR>
-- Read a specified line from a DAF file<HR>
<HR>
<|,24> function Read_Next (ID : in DAF_ID) return LINE;<HR>
-- Read the next line from a DAF file<HR>
<HR>
procedure Close (ID : in DAF_ID);<HR>
-- Close a DAF file<HR>
<HR>
end DAF_Handler;
<subhead>
Required Program Units
<paragraph>
The following program units must be withed by the body of DAF_Handler:
<codepara>
Direct_IO
<paragraph>
The following program units are needed by the body DAF_Handler but
are already withed by the specification:
<codepara>
SYSDEP
<subhead>
Internal Global Code, Types, and Objects
<paragraph>
The following global code, types, and objects reside within the DAF_Handler.
<codepara>
package DAF_IO is new Direct_IO (LINE);<HR>
<HR>
type FILE_ID_STACK is array (1..DAF_ID'LAST) of DAF_IO.FILE_TYPE;<HR>
Stack : FILE_ID_STACK;<HR>
-- Stack of FILE_TYPE objects associated with DAF_IDs<HR>
<HR>
type USE_FLAG is (UNAVAILABLE, AVAILABLE);<HR>
-- Flag to mark a file ID as available or not<HR>
<HR>
type FILE_USE_STACK is array (1..DAF_ID'LAST) of USE_FLAG;<HR>
Use_Stack : FILE_USE_STACK := (others => AVAILABLE);<HR>
-- Stack of USE_FLAGs to mark DAF_IDs as available or not<HR>
<HR>
Create_File_ID : DAF_IO.FILE_TYPE;<HR>
-- Global file type object used for an output DAF
<subsubsubsection,
Begin New Page = yes>
<|,25><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.1.><End Sub>
<F0> Create Procedure
<paragraph>
The Create procedure works with the Create_File_ID data and the DAF_IO
Package.
<paragraph>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.75 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,1.6,0.2,4,0.2,7,0,8,0)
(v6,3,65536,4,0.2,4,0.6,7,0,8,0)
(v6,4,65536,4,0.6,1.6,0.6,7,0,8,0)
(v6,5,65536,1.6,0.6,1.6,0.2,7,0,8,0))))
(t14,6,0,1.733333,0.466667,0,7,0,0,,wst:swiss10,Call\ DAF_IO.Create\ to\ create
\ file)
(p8,8,8,5,7,127
(g9,8,0
(g9,8,0
(v6,8,65536,2.8,1.001963,3.365685,1.567648,7,0,8,0)
(v6,9,65536,3.365685,1.567648,2.8,2.133333,7,0,8,0)
(v6,10,65536,2.8,2.133333,2.234315,1.567648,7,0,8,0)
(v6,11,65536,2.234315,1.567648,2.8,1.001963,7,0,8,0))))
(t14,12,0,2.466667,1.6,0,7,0,0,,wst:swiss10,Successful?)
(v6,13,0,2.8,0.6,2.8,1.001963,7,0,8,0)
(v6,14,0,4,1.6,3.333333,1.6,7,0,8,0)
(v6,15,0,1.6,1.6,2.266667,1.6,7,0,8,0)
(v6,16,0,1.6,1.6,1.6,2.2,7,0,8,0)
(v6,17,0,4,1.6,4,2.2,7,0,8,0)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,1.2,2.2,2,2.2,7,0,8,0)
(v6,20,65536,2,2.2,2,2.6,7,0,8,0)
(v6,21,65536,2,2.6,1.2,2.6,7,0,8,0)
(v6,22,65536,1.2,2.6,1.2,2.2,7,0,8,0))))
(p8,24,8,5,7,127
(g9,24,0
(g9,24,0
(v6,24,65536,3.2,2.2,6,2.2,7,0,8,0)
(v6,25,65536,6,2.2,6,2.6,7,0,8,0)
(v6,26,65536,6,2.6,3.2,2.6,7,0,8,0)
(v6,27,65536,3.2,2.6,3.2,2.2,7,0,8,0))))
(t14,28,0,1.933333,1.533333,0,7,0,0,,wst:swiss10,Yes)
(t14,29,0,3.466667,1.533333,0,7,0,0,,wst:swiss10,No)
(t14,30,0,1.4,2.466667,0,7,0,0,,wst:swiss10,return)
(t14,31,0,3.4,2.466667,0,7,0,0,,wst:swiss10,raise\ exception\ DAF_CREATION_ERRO
R)
(v6,32,0,0.8,0.4,1.6,0.4,7,0,8,0)
(t14,33,0,0.466667,0.666667,0,7,0,0,,wst:swiss10,Start)
(g9,34,8
(v6,34,0,0.8,0.4,0.6,0.4,7,0,8,0)
(g9,36,1025
(p8,36,0,5,7,0
(g9,36,0
(g9,36,0
(v6,36,0,0.649648,0.454725,0.8,0.4,7,0,8,0)
(v6,37,0,0.8,0.4,0.649648,0.345277,7,0,8,0)
(v6,38,0,0.649648,0.345277,0.681722,0.4,7,0,8,0)
(v6,39,0,0.681722,0.4,0.649648,0.454725,7,0,8,0))))
(v6,40,25167905,0.8,0.4,0.8,0.4,7,127,8,0)))
(g9,41,8
(v6,41,0,2.8,1.001963,2.8,0.801963,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,2.745275,0.851611,2.8,1.001963,7,0,8,0)
(v6,44,0,2.8,1.001963,2.854723,0.851611,7,0,8,0)
(v6,45,0,2.854723,0.851611,2.8,0.883685,7,0,8,0)
(v6,46,0,2.8,0.883685,2.745275,0.851611,7,0,8,0))))
(v6,47,25167905,2.8,1.001963,2.8,1.001963,7,127,8,0)))
(g9,48,8
(v6,48,0,4,2.2,4,2,7,0,8,0)
(g9,50,1025
(p8,50,0,5,7,0
(g9,50,0
(g9,50,0
(v6,50,0,3.945275,2.049648,4,2.2,7,0,8,0)
(v6,51,0,4,2.2,4.054722,2.049648,7,0,8,0)
(v6,52,0,4.054722,2.049648,4,2.081722,7,0,8,0)
(v6,53,0,4,2.081722,3.945275,2.049648,7,0,8,0))))
(v6,54,25167905,4,2.2,4,2.2,7,127,8,0)))
(g9,55,8
(v6,55,0,1.6,2.2,1.6,2,7,0,8,0)
(g9,57,1025
(p8,57,0,5,7,0
(g9,57,0
(g9,57,0
(v6,57,0,1.545275,2.049648,1.6,2.2,7,0,8,0)
(v6,58,0,1.6,2.2,1.654723,2.049648,7,0,8,0)
(v6,59,0,1.654723,2.049648,1.6,2.081722,7,0,8,0)
(v6,60,0,1.6,2.081722,1.545275,2.049648,7,0,8,0))))
(v6,61,25167905,1.6,2.2,1.6,2.2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.2.><End Sub>
<F0> Write Procedure
<paragraph>
The Write Procedure works with the Create_File_ID data and the DAF_IO
Package.
<paragraph>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,3.167648,0.767648,3.733333,1.333333,7,0,8,0)
(v6,3,65536,3.733333,1.333333,3.167648,1.899019,7,0,8,0)
(v6,4,65536,3.167648,1.899019,2.601963,1.333333,7,0,8,0)
(v6,5,65536,2.601963,1.333333,3.167648,0.767648,7,0,8,0))))
(v6,6,0,3.733333,1.333333,4.4,1.333333,7,0,8,0)
(v6,7,0,2.601963,1.333333,2,1.333333,7,0,8,0)
(v6,8,0,2,1.333333,2,2,7,0,8,0)
(v6,9,0,4.4,1.333333,4.4,2,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,1.4,2,2.733333,2,7,0,8,0)
(v6,12,65536,2.733333,2,2.733333,2.4,7,0,8,0)
(v6,13,65536,2.733333,2.4,1.4,2.4,7,0,8,0)
(v6,14,65536,1.4,2.4,1.4,2,7,0,8,0))))
(t14,15,0,1.466667,2.2,0,7,0,0,,wst:swiss10,Write\ a\ normal\ line)
(t14,16,0,1.466667,2.333333,0,7,0,0,,wst:swiss10,with\ wraparound)
(p8,18,8,5,7,127
(g9,18,0
(g9,18,0
(v6,18,65536,3.733333,2,5.066667,2,7,0,8,0)
(v6,19,65536,5.066667,2,5.066667,2.4,7,0,8,0)
(v6,20,65536,5.066667,2.4,3.733333,2.4,7,0,8,0)
(v6,21,65536,3.733333,2.4,3.733333,2,7,0,8,0))))
(t14,22,0,3.8,2.2,0,7,0,0,,wst:swiss10,Write\ a\ section\ line)
(t14,23,0,3.8,2.333333,0,7,0,0,,wst:swiss10,with\ wraparound)
(t14,24,0,2.933333,1.2,0,7,0,0,,wst:swiss10,Is\ Item\ a)
(t14,25,0,2.8,1.4,0,7,0,0,,wst:swiss10,section\ line?)
(t14,26,0,3.866667,1.266667,0,7,0,0,,wst:swiss10,Yes)
(t14,27,0,2.266667,1.266667,0,7,0,0,,wst:swiss10,No)
(t14,28,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(v6,29,0,4.4,2.4,4.4,2.8,7,0,8,0)
(v6,30,0,2,2.4,2,2.8,7,0,8,0)
(v6,31,0,2,2.8,4.4,2.8,7,0,8,0)
(v6,32,0,3.2,2.8,3.2,3.2,7,0,8,0)
(p8,34,8,5,7,127
(g9,34,0
(g9,34,0
(v6,34,65536,2.8,3.2,3.6,3.2,7,0,8,0)
(v6,35,65536,3.6,3.2,3.6,3.6,7,0,8,0)
(v6,36,65536,3.6,3.6,2.8,3.6,7,0,8,0)
(v6,37,65536,2.8,3.6,2.8,3.2,7,0,8,0))))
(t14,38,0,3,3.466667,0,7,0,0,,wst:swiss10,return)
(v6,39,0,3.2,0.4,3.2,0.8,7,0,8,0)
(g9,40,8
(v6,40,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,43,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,44,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,45,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,46,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,4.4,2,4.4,1.8,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,4.345275,1.849648,4.4,2,7,0,8,0)
(v6,50,0,4.4,2,4.454722,1.849648,7,0,8,0)
(v6,51,0,4.454722,1.849648,4.4,1.881722,7,0,8,0)
(v6,52,0,4.4,1.881722,4.345275,1.849648,7,0,8,0))))
(v6,53,25167905,4.4,2,4.4,2,7,127,8,0)))
(g9,54,8
(v6,54,0,2,2,2,1.8,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,1.945275,1.849648,2,2,7,0,8,0)
(v6,57,0,2,2,2.054723,1.849648,7,0,8,0)
(v6,58,0,2.054723,1.849648,2,1.881722,7,0,8,0)
(v6,59,0,2,1.881722,1.945275,1.849648,7,0,8,0))))
(v6,60,25167905,2,2,2,2,7,127,8,0)))
(g9,61,8
(v6,61,0,3.2,3.2,3.2,3,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,3.145275,3.049648,3.2,3.2,7,0,8,0)
(v6,64,0,3.2,3.2,3.254723,3.049648,7,0,8,0)
(v6,65,0,3.254723,3.049648,3.2,3.081722,7,0,8,0)
(v6,66,0,3.2,3.081722,3.145275,3.049648,7,0,8,0))))
(v6,67,25167905,3.2,3.2,3.2,3.2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<|,26><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.3.><End Sub>
<F0> Close_Create Procedure
<paragraph>
The Close_Create Procedure works with the Create_File_ID data and
the DAF_IO Package.
<paragraph>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,2.4,0.733333,4,0.733333,7,0,8,0)
(v6,3,65536,4,0.733333,4,1.133333,7,0,8,0)
(v6,4,65536,4,1.133333,2.4,1.133333,7,0,8,0)
(v6,5,65536,2.4,1.133333,2.4,0.733333,7,0,8,0))))
(v6,6,0,3.2,0.333333,3.2,0.733333,7,0,8,0)
(v6,7,0,3.2,1.133333,3.2,1.533333,7,0,8,0)
(p8,9,8,5,7,127
(g9,9,0
(g9,9,0
(v6,9,65536,2.8,1.533333,3.6,1.533333,7,0,8,0)
(v6,10,65536,3.6,1.533333,3.6,1.866667,7,0,8,0)
(v6,11,65536,3.6,1.866667,2.8,1.866667,7,0,8,0)
(v6,12,65536,2.8,1.866667,2.8,1.533333,7,0,8,0))))
(t14,13,0,2.666667,1,0,7,0,0,,wst:swiss10,call\ DAF_IO.Close)
(t14,14,0,3,1.733333,0,7,0,0,,wst:swiss10,return)
(t14,15,0,3.4,0.2,0,7,0,0,,wst:swiss10,Start)
(g9,16,8
(v6,16,0,3.2,0.333333,3.2,0.133333,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,3.145275,0.182981,3.2,0.333333,7,0,8,0)
(v6,19,0,3.2,0.333333,3.254723,0.182981,7,0,8,0)
(v6,20,0,3.254723,0.182981,3.2,0.215055,7,0,8,0)
(v6,21,0,3.2,0.215055,3.145275,0.182981,7,0,8,0))))
(v6,22,25167905,3.2,0.333333,3.2,0.333333,7,127,8,0)))
(g9,23,8
(v6,23,0,3.2,1.533333,3.2,1.333333,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,3.145275,1.382981,3.2,1.533333,7,0,8,0)
(v6,26,0,3.2,1.533333,3.254723,1.382981,7,0,8,0)
(v6,27,0,3.254723,1.382981,3.2,1.415055,7,0,8,0)
(v6,28,0,3.2,1.415055,3.145275,1.382981,7,0,8,0))))
(v6,29,25167905,3.2,1.533333,3.2,1.533333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,27><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.4.><End Sub>
<F0> Open Function
<paragraph>
The Open Function works with the DAF_IO Package and the Use_Stack
and Stack vectors.
<paragraph>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(p8,3,8,5,7,127
(g9,3,0
(g9,3,0
(v6,3,65536,1.2,0.8,2.933333,0.8,7,0,8,0)
(v6,4,65536,2.933333,0.8,2.933333,1.2,7,0,8,0)
(v6,5,65536,2.933333,1.2,1.2,1.2,7,0,8,0)
(v6,6,65536,1.2,1.2,1.2,0.8,7,0,8,0))))
(t14,7,0,1.266667,1,0,7,0,0,,wst:swiss10,Locate\ an\ available)
(t14,8,0,1.266667,1.133333,0,7,0,0,,wst:swiss10,DAF_ID\ via\ the\ Use_Stack)
(v6,9,0,2,1.2,2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,2.034315,1.567648,2.6,2.133333,7,0,8,0)
(v6,12,65536,2.6,2.133333,2.034315,2.699019,7,0,8,0)
(v6,13,65536,2.034315,2.699019,1.46863,2.133333,7,0,8,0)
(v6,14,65536,1.46863,2.133333,2.034315,1.567648,7,0,8,0))))
(v6,15,0,0.8,2.133333,1.46863,2.133333,7,0,8,0)
(v6,16,0,0.8,2.133333,0.8,2.8,7,0,8,0)
(p8,18,8,5,7,127
(g9,18,0
(g9,18,0
(v6,18,65536,0.133333,2.8,1.466667,2.8,7,0,8,0)
(v6,19,65536,1.466667,2.8,1.466667,3.2,7,0,8,0)
(v6,20,65536,1.466667,3.2,0.133333,3.2,7,0,8,0)
(v6,21,65536,0.133333,3.2,0.133333,2.8,7,0,8,0))))
(t14,22,0,1.8,2,0,7,0,0,,wst:swiss10,DAF_ID)
(t14,23,0,1.733333,2.2,0,7,0,0,,wst:swiss10,Available?)
(t14,24,0,1.2,2.066667,0,7,0,0,,wst:swiss10,No)
(t14,25,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(t14,26,0,0.2,3,0,7,0,0,,wst:swiss10,raise\ exception)
(t14,27,0,0.2,3.133333,0,7,0,0,,wst:swiss10,STACK_OVERFLOW)
(v6,28,0,3.2,2.133333,2.6,2.133333,7,0,8,0)
(v6,29,0,3.2,2.133333,3.2,2.8,7,0,8,0)
(p8,31,8,5,7,127
(g9,31,0
(g9,31,0
(v6,31,65536,2.4,2.8,4,2.8,7,0,8,0)
(v6,32,65536,4,2.8,4,3.2,7,0,8,0)
(v6,33,65536,4,3.2,2.4,3.2,7,0,8,0)
(v6,34,65536,2.4,3.2,2.4,2.8,7,0,8,0))))
(t14,35,0,2.666667,3.066667,0,7,0,0,,wst:swiss10,call\ DAF_IO.Open)
(t14,36,0,2.733333,2.066667,0,7,0,0,,wst:swiss10,Yes)
(v6,37,0,3.2,3.2,3.2,3.6,7,0,8,0)
(p8,39,8,5,7,127
(g9,39,0
(g9,39,0
(v6,39,65536,3.2,3.535296,3.765685,4.100981,7,0,8,0)
(v6,40,65536,3.765685,4.100981,3.2,4.666667,7,0,8,0)
(v6,41,65536,3.2,4.666667,2.634315,4.100981,7,0,8,0)
(v6,42,65536,2.634315,4.100981,3.2,3.535296,7,0,8,0))))
(t14,43,0,2.866667,4.133333,0,7,0,0,,wst:swiss10,Open\ OK?)
(v6,44,0,4.4,4.133333,3.733333,4.133333,7,0,8,0)
(v6,45,0,2,4.133333,2.666667,4.133333,7,0,8,0)
(p8,47,8,5,7,127
(g9,47,0
(g9,47,0
(v6,47,65536,0.4,3.933333,2,3.933333,7,0,8,0)
(v6,48,65536,2,3.933333,2,4.333333,7,0,8,0)
(v6,49,65536,2,4.333333,0.4,4.333333,7,0,8,0)
(v6,50,65536,0.4,4.333333,0.4,3.933333,7,0,8,0))))
(p8,52,8,5,7,127
(g9,52,0
(g9,52,0
(v6,52,65536,4.4,3.933333,6,3.933333,7,0,8,0)
(v6,53,65536,6,3.933333,6,4.333333,7,0,8,0)
(v6,54,65536,6,4.333333,4.4,4.333333,7,0,8,0)
(v6,55,65536,4.4,4.333333,4.4,3.933333,7,0,8,0))))
(t14,56,0,2.4,4.066667,0,7,0,0,,wst:swiss10,No)
(t14,57,0,3.8,4.066667,0,7,0,0,,wst:swiss10,Yes)
(t14,58,0,4.466667,4.2,0,7,0,0,,wst:swiss10,return\ available\ DAF_ID)
(t14,59,0,0.466667,4.133333,0,7,0,0,,wst:swiss10,raise\ exception)
(t14,60,0,0.466667,4.266667,0,7,0,0,,wst:swiss10,FILE_NOT_FOUND)
(g9,61,8
(v6,61,0,2,0.4,2,0.2,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,64,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,65,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,66,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,67,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,68,8
(v6,68,0,2,1.6,2,1.4,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,1.945275,1.449648,2,1.6,7,0,8,0)
(v6,71,0,2,1.6,2.054723,1.449648,7,0,8,0)
(v6,72,0,2.054723,1.449648,2,1.481722,7,0,8,0)
(v6,73,0,2,1.481722,1.945275,1.449648,7,0,8,0))))
(v6,74,25167905,2,1.6,2,1.6,7,127,8,0)))
(g9,75,8
(v6,75,0,3.2,2.8,3.2,2.6,7,0,8,0)
(g9,77,1025
(p8,77,0,5,7,0
(g9,77,0
(g9,77,0
(v6,77,0,3.145275,2.649648,3.2,2.8,7,0,8,0)
(v6,78,0,3.2,2.8,3.254723,2.649648,7,0,8,0)
(v6,79,0,3.254723,2.649648,3.2,2.681722,7,0,8,0)
(v6,80,0,3.2,2.681722,3.145275,2.649648,7,0,8,0))))
(v6,81,25167905,3.2,2.8,3.2,2.8,7,127,8,0)))
(g9,82,8
(v6,82,0,0.8,2.8,0.8,2.6,7,0,8,0)
(g9,84,1025
(p8,84,0,5,7,0
(g9,84,0
(g9,84,0
(v6,84,0,0.745275,2.649648,0.8,2.8,7,0,8,0)
(v6,85,0,0.8,2.8,0.854723,2.649648,7,0,8,0)
(v6,86,0,0.854723,2.649648,0.8,2.681722,7,0,8,0)
(v6,87,0,0.8,2.681722,0.745275,2.649648,7,0,8,0))))
(v6,88,25167905,0.8,2.8,0.8,2.8,7,127,8,0)))
(g9,89,8
(v6,89,0,3.2,3.573333,3.2,3.373333,7,0,8,0)
(g9,91,1025
(p8,91,0,5,7,0
(g9,91,0
(g9,91,0
(v6,91,0,3.145275,3.422981,3.2,3.573333,7,0,8,0)
(v6,92,0,3.2,3.573333,3.254723,3.422981,7,0,8,0)
(v6,93,0,3.254723,3.422981,3.2,3.455055,7,0,8,0)
(v6,94,0,3.2,3.455055,3.145275,3.422981,7,0,8,0))))
(v6,95,25167905,3.2,3.573333,3.2,3.573333,7,127,8,0)))
(g9,96,8
(v6,96,0,2,4.133333,2.2,4.133333,7,0,8,0)
(g9,98,1025
(p8,98,0,5,7,0
(g9,98,0
(g9,98,0
(v6,98,0,2.150352,4.078608,2,4.133333,7,0,8,0)
(v6,99,0,2,4.133333,2.150352,4.188057,7,0,8,0)
(v6,100,0,2.150352,4.188057,2.118278,4.133333,7,0,8,0)
(v6,101,0,2.118278,4.133333,2.150352,4.078608,7,0,8,0))))
(v6,102,25167905,2,4.133333,2,4.133333,7,127,8,0)))
(g9,103,8
(v6,103,0,4.4,4.133333,4.2,4.133333,7,0,8,0)
(g9,105,1025
(p8,105,0,5,7,0
(g9,105,0
(g9,105,0
(v6,105,0,4.249648,4.188058,4.4,4.133333,7,0,8,0)
(v6,106,0,4.4,4.133333,4.249648,4.07861,7,0,8,0)
(v6,107,0,4.249648,4.07861,4.281722,4.133333,7,0,8,0)
(v6,108,0,4.281722,4.133333,4.249648,4.188058,7,0,8,0))))
(v6,109,25167905,4.4,4.133333,4.4,4.133333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,28><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.5.><End Sub>
<F0> Is_Open Function
<paragraph>
The Is_Open function works with DAF_IO and the Stack vector.
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,3.167648,0.767648,3.733333,1.333333,7,0,8,0)
(v6,5,65536,3.733333,1.333333,3.167648,1.899019,7,0,8,0)
(v6,6,65536,3.167648,1.899019,2.601963,1.333333,7,0,8,0)
(v6,7,65536,2.601963,1.333333,3.167648,0.767648,7,0,8,0))))
(t14,8,0,2.866667,1.4,0,7,0,0,,wst:swiss10,Is\ ID\ Valid?)
(v6,9,0,2,1.333333,2.601963,1.333333,7,0,8,0)
(v6,10,0,4.4,1.333333,3.733333,1.333333,7,0,8,0)
(v6,11,0,2,1.333333,2,2,7,0,8,0)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,1.2,2,2.8,2,7,0,8,0)
(v6,14,65536,2.8,2,2.8,2.4,7,0,8,0)
(v6,15,65536,2.8,2.4,1.2,2.4,7,0,8,0)
(v6,16,65536,1.2,2.4,1.2,2,7,0,8,0))))
(T12,17,12,1.333333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.327 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
raise NO_DAF_OPEN
<End Text>)
(v6,18,0,4.4,1.333333,4.4,2,7,0,8,0)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,3.6,2,5.2,2,7,0,8,0)
(v6,21,65536,5.2,2,5.2,2.4,7,0,8,0)
(v6,22,65536,5.2,2.4,3.6,2.4,7,0,8,0)
(v6,23,65536,3.6,2.4,3.6,2,7,0,8,0))))
(T12,24,12,3.733333,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.333 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call DAF_IO.IS_OPEN
<End Text>)
(T12,25,12,2.266667,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,26,12,3.866667,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(g9,27,8
(v6,27,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,29,1025
(p8,29,0,5,7,0
(g9,29,0
(g9,29,0
(v6,29,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,30,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,31,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,32,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,33,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,34,8
(v6,34,0,4.4,2,4.4,1.8,7,0,8,0)
(g9,36,1025
(p8,36,0,5,7,0
(g9,36,0
(g9,36,0
(v6,36,0,4.345275,1.849648,4.4,2,7,0,8,0)
(v6,37,0,4.4,2,4.454722,1.849648,7,0,8,0)
(v6,38,0,4.454722,1.849648,4.4,1.881722,7,0,8,0)
(v6,39,0,4.4,1.881722,4.345275,1.849648,7,0,8,0))))
(v6,40,25167905,4.4,2,4.4,2,7,127,8,0)))
(g9,41,8
(v6,41,0,2,2,2,1.8,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,1.945275,1.849648,2,2,7,0,8,0)
(v6,44,0,2,2,2.054723,1.849648,7,0,8,0)
(v6,45,0,2.054723,1.849648,2,1.881722,7,0,8,0)
(v6,46,0,2,1.881722,1.945275,1.849648,7,0,8,0))))
(v6,47,25167905,2,2,2,2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.6.><End Sub>
<F0> Is_End_of_File Function
<paragraph>
The Is_End_of_File function works with DAF_IO and the Stack vector.
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,3.167648,0.767648,3.733333,1.333333,7,0,8,0)
(v6,5,65536,3.733333,1.333333,3.167648,1.899019,7,0,8,0)
(v6,6,65536,3.167648,1.899019,2.601963,1.333333,7,0,8,0)
(v6,7,65536,2.601963,1.333333,3.167648,0.767648,7,0,8,0))))
(T12,8,12,2.866667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.683 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is ID Valid?
<End Text>)
(v6,9,0,2,1.333333,2.601963,1.333333,7,0,8,0)
(v6,10,0,4.4,1.333333,3.733333,1.333333,7,0,8,0)
(v6,11,0,2,1.333333,2,2,7,0,8,0)
(v6,12,0,4.4,1.333333,4.4,2,7,0,8,0)
(p8,14,8,5,7,127
(g9,14,0
(g9,14,0
(v6,14,65536,1.266667,2,2.8,2,7,0,8,0)
(v6,15,65536,2.8,2,2.8,2.4,7,0,8,0)
(v6,16,65536,2.8,2.4,1.266667,2.4,7,0,8,0)
(v6,17,65536,1.266667,2.4,1.266667,2,7,0,8,0))))
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,3.6,2,5.466667,2,7,0,8,0)
(v6,20,65536,5.466667,2,5.466667,2.4,7,0,8,0)
(v6,21,65536,5.466667,2.4,3.6,2.4,7,0,8,0)
(v6,22,65536,3.6,2.4,3.6,2,7,0,8,0))))
(T12,23,12,1.4,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.327 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
raise NO_DAF_OPEN
<End Text>)
(T12,24,12,3.666667,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.64 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call DAF_IO.END_OF_FILE
<End Text>)
(T12,25,12,2.2,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,26,12,3.866667,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(g9,27,8
(v6,27,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,29,1025
(p8,29,0,5,7,0
(g9,29,0
(g9,29,0
(v6,29,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,30,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,31,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,32,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,33,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,34,8
(v6,34,0,4.4,2,4.4,1.8,7,0,8,0)
(g9,36,1025
(p8,36,0,5,7,0
(g9,36,0
(g9,36,0
(v6,36,0,4.345275,1.849648,4.4,2,7,0,8,0)
(v6,37,0,4.4,2,4.454722,1.849648,7,0,8,0)
(v6,38,0,4.454722,1.849648,4.4,1.881722,7,0,8,0)
(v6,39,0,4.4,1.881722,4.345275,1.849648,7,0,8,0))))
(v6,40,25167905,4.4,2,4.4,2,7,127,8,0)))
(g9,41,8
(v6,41,0,2,2,2,1.8,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,1.945275,1.849648,2,2,7,0,8,0)
(v6,44,0,2,2,2.054723,1.849648,7,0,8,0)
(v6,45,0,2.054723,1.849648,2,1.881722,7,0,8,0)
(v6,46,0,2,1.881722,1.945275,1.849648,7,0,8,0))))
(v6,47,25167905,2,2,2,2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,29><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.7.><End Sub>
<F0> Read Function
<paragraph>
The Read function works with DAF_IO and the Stack vector.
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,3.2,0.801963,3.765685,1.367648,7,0,8,0)
(v6,5,65536,3.765685,1.367648,3.2,1.933333,7,0,8,0)
(v6,6,65536,3.2,1.933333,2.634315,1.367648,7,0,8,0)
(v6,7,65536,2.634315,1.367648,3.2,0.801963,7,0,8,0))))
(v6,8,0,4.4,1.4,3.733333,1.4,7,0,8,0)
(v6,9,0,2,1.4,2.666667,1.4,7,0,8,0)
(v6,10,0,2,1.4,2,2,7,0,8,0)
(v6,11,0,4.4,1.4,4.4,2,7,0,8,0)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,1.266667,2,2.8,2,7,0,8,0)
(v6,14,65536,2.8,2,2.8,2.4,7,0,8,0)
(v6,15,65536,2.8,2.4,1.266667,2.4,7,0,8,0)
(v6,16,65536,1.266667,2.4,1.266667,2,7,0,8,0))))
(p8,18,8,5,7,127
(g9,18,0
(g9,18,0
(v6,18,65536,3.6,2,5.2,2,7,0,8,0)
(v6,19,65536,5.2,2,5.2,2.4,7,0,8,0)
(v6,20,65536,5.2,2.4,3.6,2.4,7,0,8,0)
(v6,21,65536,3.6,2.4,3.6,2,7,0,8,0))))
(T12,22,12,2.866667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.683 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is ID Valid?
<End Text>)
(T12,23,12,1.333333,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.327 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
raise NO_DAF_OPEN
<End Text>)
(T12,24,12,3.866667,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.087 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call DAF_IO.Read
<End Text>)
(T12,25,12,2.333333,1.226667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84@Lnl>
No
<End Text>)
(T12,26,12,3.866667,1.226667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84@Lnl>
Yes
<End Text>)
(g9,27,8
(v6,27,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,29,1025
(p8,29,0,5,7,0
(g9,29,0
(g9,29,0
(v6,29,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,30,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,31,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,32,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,33,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,34,8
(v6,34,0,2,2,2,1.8,7,0,8,0)
(g9,36,1025
(p8,36,0,5,7,0
(g9,36,0
(g9,36,0
(v6,36,0,1.945275,1.849648,2,2,7,0,8,0)
(v6,37,0,2,2,2.054723,1.849648,7,0,8,0)
(v6,38,0,2.054723,1.849648,2,1.881722,7,0,8,0)
(v6,39,0,2,1.881722,1.945275,1.849648,7,0,8,0))))
(v6,40,25167905,2,2,2,2,7,127,8,0)))
(g9,41,8
(v6,41,0,4.4,2,4.4,1.8,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,4.345275,1.849648,4.4,2,7,0,8,0)
(v6,44,0,4.4,2,4.454722,1.849648,7,0,8,0)
(v6,45,0,4.454722,1.849648,4.4,1.881722,7,0,8,0)
(v6,46,0,4.4,1.881722,4.345275,1.849648,7,0,8,0))))
(v6,47,25167905,4.4,2,4.4,2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.8.><End Sub>
<F0> Read_Next Function
<paragraph>
The Read_Next function works with DAF_IO and the Stack vector.
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,3.2,0.801963,3.765685,1.367648,7,0,8,0)
(v6,5,65536,3.765685,1.367648,3.2,1.933333,7,0,8,0)
(v6,6,65536,3.2,1.933333,2.634315,1.367648,7,0,8,0)
(v6,7,65536,2.634315,1.367648,3.2,0.801963,7,0,8,0))))
(v6,8,0,4.4,1.4,3.733333,1.4,7,0,8,0)
(v6,9,0,2,1.4,2.666667,1.4,7,0,8,0)
(v6,10,0,2,1.4,2,2,7,0,8,0)
(v6,11,0,4.4,1.4,4.4,2,7,0,8,0)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,1.266667,2,2.8,2,7,0,8,0)
(v6,14,65536,2.8,2,2.8,2.4,7,0,8,0)
(v6,15,65536,2.8,2.4,1.266667,2.4,7,0,8,0)
(v6,16,65536,1.266667,2.4,1.266667,2,7,0,8,0))))
(p8,18,8,5,7,127
(g9,18,0
(g9,18,0
(v6,18,65536,3.6,2,5.2,2,7,0,8,0)
(v6,19,65536,5.2,2,5.2,2.4,7,0,8,0)
(v6,20,65536,5.2,2.4,3.6,2.4,7,0,8,0)
(v6,21,65536,3.6,2.4,3.6,2,7,0,8,0))))
(T12,22,12,2.866667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.683 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is ID Valid?
<End Text>)
(T12,23,12,1.333333,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.327 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
raise NO_DAF_OPEN
<End Text>)
(T12,24,12,3.866667,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.087 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call DAF_IO.Read
<End Text>)
(T12,25,12,2.333333,1.226667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84@Lnl>
No
<End Text>)
(T12,26,12,3.866667,1.226667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84@Lnl>
Yes
<End Text>)
(g9,27,8
(v6,27,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,29,1025
(p8,29,0,5,7,0
(g9,29,0
(g9,29,0
(v6,29,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,30,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,31,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,32,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,33,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,34,8
(v6,34,0,4.4,2,4.4,1.8,7,0,8,0)
(g9,36,1025
(p8,36,0,5,7,0
(g9,36,0
(g9,36,0
(v6,36,0,4.345275,1.849648,4.4,2,7,0,8,0)
(v6,37,0,4.4,2,4.454722,1.849648,7,0,8,0)
(v6,38,0,4.454722,1.849648,4.4,1.881722,7,0,8,0)
(v6,39,0,4.4,1.881722,4.345275,1.849648,7,0,8,0))))
(v6,40,25167905,4.4,2,4.4,2,7,127,8,0)))
(g9,41,8
(v6,41,0,2,2,2,1.8,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,1.945275,1.849648,2,2,7,0,8,0)
(v6,44,0,2,2,2.054723,1.849648,7,0,8,0)
(v6,45,0,2.054723,1.849648,2,1.881722,7,0,8,0)
(v6,46,0,2,1.881722,1.945275,1.849648,7,0,8,0))))
(v6,47,25167905,2,2,2,2,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,30><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.6.9.><End Sub>
<F0> Close Procedure
<paragraph>
The Close function works with DAF_IO, the Use_Stack vector, and the
Stack vector.
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.6,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.683 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is ID Valid?
<End Text>)
(v6,9,0,2,2.4,2,1.866667,7,0,8,0)
(T12,10,12,2.066667,1.96,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,11,0,3.2,1.333333,2.533333,1.333333,7,0,8,0)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,3.2,1.133333,4.8,1.133333,7,0,8,0)
(v6,14,65536,4.8,1.133333,4.8,1.533333,7,0,8,0)
(v6,15,65536,4.8,1.533333,3.2,1.533333,7,0,8,0)
(v6,16,65536,3.2,1.533333,3.2,1.133333,7,0,8,0))))
(T12,17,12,3.466667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.12 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call DAF_IO.Close
<End Text>)
(v6,18,0,4,1.533333,4,2,7,0,8,0)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,3.2,2,4.8,2,7,0,8,0)
(v6,21,65536,4.8,2,4.8,2.4,7,0,8,0)
(v6,22,65536,4.8,2.4,3.2,2.4,7,0,8,0)
(v6,23,65536,3.2,2.4,3.2,2,7,0,8,0))))
(T12,24,12,3.333333,2.16,7,127,5,7,127,8,0,7,
<!Page, Width = 1.383 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Mark ID as AVAILABLE
<End Text>)
(T12,25,12,2.6,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(g9,26,8
(v6,26,0,2,0.4,2,0.2,7,0,8,0)
(g9,28,1025
(p8,28,0,5,7,0
(g9,28,0
(g9,28,0
(v6,28,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,29,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,30,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,31,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,32,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,33,8
(v6,33,0,2,2.4,2,2.2,7,0,8,0)
(g9,35,1025
(p8,35,0,5,7,0
(g9,35,0
(g9,35,0
(v6,35,0,1.945275,2.249648,2,2.4,7,0,8,0)
(v6,36,0,2,2.4,2.054723,2.249648,7,0,8,0)
(v6,37,0,2.054723,2.249648,2,2.281722,7,0,8,0)
(v6,38,0,2,2.281722,1.945275,2.249648,7,0,8,0))))
(v6,39,25167905,2,2.4,2,2.4,7,127,8,0)))
(g9,40,8
(v6,40,0,4,2,4,1.8,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,3.945275,1.849648,4,2,7,0,8,0)
(v6,43,0,4,2,4.054722,1.849648,7,0,8,0)
(v6,44,0,4.054722,1.849648,4,1.881722,7,0,8,0)
(v6,45,0,4,1.881722,3.945275,1.849648,7,0,8,0))))
(v6,46,25167905,4,2,4,2,7,127,8,0)))
(g9,47,8
(v6,47,0,3.2,1.333333,3,1.333333,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,3.049648,1.388058,3.2,1.333333,7,0,8,0)
(v6,50,0,3.2,1.333333,3.049648,1.27861,7,0,8,0)
(v6,51,0,3.049648,1.27861,3.081722,1.333333,7,0,8,0)
(v6,52,0,3.081722,1.333333,3.049648,1.388058,7,0,8,0))))
(v6,53,25167905,3.2,1.333333,3.2,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.7.><End Sub>
<F0> Command_Dispatcher Package
<paragraph>
The Command_Dispatcher Package implements a passive object which provides
methods to start up the first citation display, handle events generated
by the user (commands issued at the keyboard), and dispatch messages
to the appropriate methods associated with the objects which will
handle these events.
<subhead>
Mapping to Requirements
<paragraph>
This CSC implements the user command processing and dispatching required
for all capabilities identified in Section 3.2 (including subsections
3.2.1 to 3.2.5) of the SRS. It also meets the design constraint
in Section 3.7 of the SRS which stipulates that the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> be
event-driven by synchronous events.
<subhead,
Begin New Page = yes>
<|,31>Design
<paragraph>
The Command_Dispatcher Package presents the following sets of methods,
types, data, and exceptions in its interface:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.50 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,1.6,0.8,3.2,0.8,7,0,8,0)
(v6,3,65536,3.2,0.8,3.2,1.2,7,0,8,0)
(v6,4,65536,3.2,1.2,1.6,1.2,7,0,8,0)
(v6,5,65536,1.6,1.2,1.6,0.8,7,0,8,0))))
(p8,7,8,5,7,127
(g9,7,0
(g9,7,0
(v6,7,65536,1.6,1.333333,3.2,1.333333,7,0,8,0)
(v6,8,65536,3.2,1.333333,3.2,1.733333,7,0,8,0)
(v6,9,65536,3.2,1.733333,1.6,1.733333,7,0,8,0)
(v6,10,65536,1.6,1.733333,1.6,1.333333,7,0,8,0))))
(t14,11,0,1.733333,1.066667,0,7,0,0,,wst:swiss10,View_Help)
(t14,12,0,1.733333,1.6,0,7,0,0,,wst:swiss10,Dispatch)
(p8,14,8,5,7,127
(g9,14,0
(g9,14,0
(v6,14,65536,1.6,0.133333,4.8,0.133333,7,0,8,0)
(v6,15,65536,4.8,0.133333,4.8,2.4,7,0,8,0)
(v6,16,65536,4.8,2.4,1.6,2.4,7,0,8,0)
(v6,17,65536,1.6,2.4,1.6,0.133333,7,0,8,0))))
(t14,18,0,1.666667,0.4,0,7,0,0,,wst:swiss14,Command_Dispatcher)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,1.6,1.866667,3.2,1.866667,7,0,8,0)
(v6,21,65536,3.2,1.866667,3.2,2.266667,7,0,8,0)
(v6,22,65536,3.2,2.266667,1.6,2.266667,7,0,8,0)
(v6,23,65536,1.6,2.266667,1.6,1.866667,7,0,8,0))))
(t14,24,0,1.733333,2.133333,0,7,0,0,,wst:swiss10,Convert_Citation)
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
In this OID symbol, the small rectangles represent subprograms.
<subhead>
CSC Specification
<codepara>
-- ***********************************************************************<HR>
-- ON-LINE Ada LANGUAGE REFERENCE MANUAL<HR>
-- by Richard Conn<HR>
with Citation_Definition;<HR>
package Command_Dispatcher is<HR>
<HR>
function Convert_Citation (CitS : in STRING)<HR>
return Citation_Definition.CITATION_ID;<HR>
-- Convert the indicated string ("n.n.n" or "keyword") to CITATION_ID<HR>
<HR>
procedure View_Help;<HR>
-- View help citation and then Dispatch (Citation_Definition.USER_INPUT)<HR>
<HR>
procedure Dispatch (Current_Citation :<HR>
in Citation_Definition.CITATION_ID);<HR>
-- Dispatch Current_Citation as first command and continue with<HR>
-- USER_INPUT until command is QUIT<HR>
<HR>
end Command_Dispatcher;
<subhead>
Required Program Units
<paragraph>
The following program units are withed into the specification:
<codepara>
Citation_Definition
<paragraph>
The following program units are withed into the body:
<codepara>
SYSDEP<HR>
Citation_Handler<HR>
<|,32>DAF_Handler<HR>
Primitive_Citation_Handler<HR>
Print_Log_Handler<HR>
Screen_Display_Controller<HR>
Console
<subhead>
Internal Global Code, Types, and Objects
<paragraph>
The following is the global data internal to the body of Command_Dispatcher:
<codepara>
New_Command : STRING (1..SYSDEP.Max_String_Length);<HR>
New_Command_Length : NATURAL;<HR>
<HR>
Citation_to_Process : Citation_Definition.CITATION_ID;
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.7.1.><End Sub>
<F0> Convert_Citation Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.2,0.8,2.8,0.8,7,0,8,0)
(v6,5,65536,2.8,0.8,2.8,1.2,7,0,8,0)
(v6,6,65536,2.8,1.2,1.2,1.2,7,0,8,0)
(v6,7,65536,1.2,1.2,1.2,0.8,7,0,8,0))))
(T12,8,12,1.266667,0.826667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.48 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Attempt to convert using<HR>
VALUE attribute
<End Text>)
(v6,9,0,2,1.2,2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,2,1.601963,2.565685,2.167648,7,0,8,0)
(v6,12,65536,2.565685,2.167648,2,2.733333,7,0,8,0)
(v6,13,65536,2,2.733333,1.434315,2.167648,7,0,8,0)
(v6,14,65536,1.434315,2.167648,2,1.601963,7,0,8,0))))
(T12,15,12,1.666667,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.587 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Success?
<End Text>)
(v6,16,0,0.8,2.133333,1.466667,2.133333,7,0,8,0)
(v6,17,0,0.8,2.133333,0.8,3.2,7,0,8,0)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,0.4,3.2,1.333333,3.2,7,0,8,0)
(v6,20,65536,1.333333,3.2,1.333333,3.6,7,0,8,0)
(v6,21,65536,1.333333,3.6,0.4,3.6,7,0,8,0)
(v6,22,65536,0.4,3.6,0.4,3.2,7,0,8,0))))
(T12,23,12,0.533333,3.36,7,127,5,7,127,8,0,7,
<!Page, Width = 0.71 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return result
<End Text>)
(T12,24,12,1.133333,1.96,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(v6,25,0,3.6,2.133333,2.533333,2.133333,7,0,8,0)
(T12,26,12,2.706667,1.626667,7,127,5,7,127,8,0,3,
<!Page, Width = 0.627 inches, Height = 0.441 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No - must<HR>
be of the form n.n.n
<End Text>)
(p8,28,8,5,7,127
(g9,28,0
(g9,28,0
(v6,28,65536,3.6,1.933333,5.6,1.933333,7,0,8,0)
(v6,29,65536,5.6,1.933333,5.6,2.333333,7,0,8,0)
(v6,30,65536,5.6,2.333333,3.6,2.333333,7,0,8,0)
(v6,31,65536,3.6,2.333333,3.6,1.933333,7,0,8,0))))
(T12,32,12,3.666667,1.986667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.783 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
convert from n.n.n to CnPnPn<HR>
or l to Cl
<End Text>)
(v6,33,0,4.4,2.333333,4.4,2.8,7,0,8,0)
(p8,35,8,5,7,127
(g9,35,0
(g9,35,0
(v6,35,65536,4.367648,2.767648,4.933333,3.333333,7,0,8,0)
(v6,36,65536,4.933333,3.333333,4.367648,3.899019,7,0,8,0)
(v6,37,65536,4.367648,3.899019,3.801963,3.333333,7,0,8,0)
(v6,38,65536,3.801963,3.333333,4.367648,2.767648,7,0,8,0))))
(T12,39,12,4.034315,3.259019,7,127,5,7,127,8,0,7,
<!Page, Width = 0.587 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Success?
<End Text>)
(v6,40,0,1.333333,3.333333,3.801963,3.333333,7,0,8,0)
(T12,41,12,3.466667,3.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(v6,42,0,5.2,3.333333,4.933333,3.333333,7,0,8,0)
(p8,44,8,5,7,127
(g9,44,0
(g9,44,0
(v6,44,65536,5.2,3.133333,6.4,3.133333,7,0,8,0)
(v6,45,65536,6.4,3.133333,6.4,3.533333,7,0,8,0)
(v6,46,65536,6.4,3.533333,5.2,3.533333,7,0,8,0)
(v6,47,65536,5.2,3.533333,5.2,3.133333,7,0,8,0))))
(T12,48,12,5.4,3.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.84 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return ERROR
<End Text>)
(T12,49,12,4.933333,3.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,50,8
(v6,50,0,2,0.4,2,0.2,7,0,8,0)
(g9,52,1025
(p8,52,0,5,7,0
(g9,52,0
(g9,52,0
(v6,52,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,53,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,54,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,55,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,56,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,57,8
(v6,57,0,0.8,3.2,0.8,3,7,0,8,0)
(g9,59,1025
(p8,59,0,5,7,0
(g9,59,0
(g9,59,0
(v6,59,0,0.745275,3.049648,0.8,3.2,7,0,8,0)
(v6,60,0,0.8,3.2,0.854723,3.049648,7,0,8,0)
(v6,61,0,0.854723,3.049648,0.8,3.081722,7,0,8,0)
(v6,62,0,0.8,3.081722,0.745275,3.049648,7,0,8,0))))
(v6,63,25167905,0.8,3.2,0.8,3.2,7,127,8,0)))
(g9,64,8
(v6,64,0,4.4,2.8,4.4,2.6,7,0,8,0)
(g9,66,1025
(p8,66,0,5,7,0
(g9,66,0
(g9,66,0
(v6,66,0,4.345275,2.649648,4.4,2.8,7,0,8,0)
(v6,67,0,4.4,2.8,4.454722,2.649648,7,0,8,0)
(v6,68,0,4.454722,2.649648,4.4,2.681722,7,0,8,0)
(v6,69,0,4.4,2.681722,4.345275,2.649648,7,0,8,0))))
(v6,70,25167905,4.4,2.8,4.4,2.8,7,127,8,0)))
(g9,71,8
(v6,71,0,3.6,2.133333,3.4,2.133333,7,0,8,0)
(g9,73,1025
(p8,73,0,5,7,0
(g9,73,0
(g9,73,0
(v6,73,0,3.449648,2.188058,3.6,2.133333,7,0,8,0)
(v6,74,0,3.6,2.133333,3.449648,2.07861,7,0,8,0)
(v6,75,0,3.449648,2.07861,3.481722,2.133333,7,0,8,0)
(v6,76,0,3.481722,2.133333,3.449648,2.188058,7,0,8,0))))
(v6,77,25167905,3.6,2.133333,3.6,2.133333,7,127,8,0)))
(g9,78,8
(v6,78,0,5.2,3.333333,5,3.333333,7,0,8,0)
(g9,80,1025
(p8,80,0,5,7,0
(g9,80,0
(g9,80,0
(v6,80,0,5.049648,3.388058,5.2,3.333333,7,0,8,0)
(v6,81,0,5.2,3.333333,5.049648,3.27861,7,0,8,0)
(v6,82,0,5.049648,3.27861,5.081722,3.333333,7,0,8,0)
(v6,83,0,5.081722,3.333333,5.049648,3.388058,7,0,8,0))))
(v6,84,25167905,5.2,3.333333,5.2,3.333333,7,127,8,0)))
(g9,85,8
(v6,85,0,1.333333,3.333333,1.533333,3.333333,7,0,8,0)
(g9,87,1025
(p8,87,0,5,7,0
(g9,87,0
(g9,87,0
(v6,87,0,1.483686,3.278608,1.333333,3.333333,7,0,8,0)
(v6,88,0,1.333333,3.333333,1.483686,3.388057,7,0,8,0)
(v6,89,0,1.483686,3.388057,1.451611,3.333333,7,0,8,0)
(v6,90,0,1.451611,3.333333,1.483686,3.278608,7,0,8,0))))
(v6,91,25167905,1.333333,3.333333,1.333333,3.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,33><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.7.2.><End Sub>
<F0> View_Help Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,2,0.8,4.8,0.8,7,0,8,0)
(v6,5,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,6,65536,4.8,1.2,2,1.2,7,0,8,0)
(v6,7,65536,2,1.2,2,0.8,7,0,8,0))))
(T12,8,12,2.136667,0.933333,7,127,5,7,127,8,0,3,
<!Page, Width = 2.597 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Citation_Handler.View_Citation (HELP)
<End Text>)
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,2.2,1.6,4.2,1.6,7,0,8,0)
(v6,12,65536,4.2,1.6,4.2,2,7,0,8,0)
(v6,13,65536,4.2,2,2.2,2,7,0,8,0)
(v6,14,65536,2.2,2,2.2,1.6,7,0,8,0))))
(T12,15,12,2.333333,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.703 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Dispatch(USER_INPUT)
<End Text>)
(g9,16,8
(v6,16,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,19,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,20,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,21,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,22,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,23,8
(v6,23,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,26,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,27,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,28,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,29,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,34><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.7.3.><End Sub>
<F0> Dispatch Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,2.034315,0.767648,2.6,1.333333,7,0,8,0)
(v6,5,65536,2.6,1.333333,2.034315,1.899019,7,0,8,0)
(v6,6,65536,2.034315,1.899019,1.46863,1.333333,7,0,8,0)
(v6,7,65536,1.46863,1.333333,2.034315,0.767648,7,0,8,0))))
(T12,8,12,1.363333,0.986667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.37 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is Citation_to_Process<HR>
the QUIT Command?
<End Text>)
(v6,9,0,0.8,1.333333,1.46863,1.333333,7,0,8,0)
(v6,10,0,0.8,1.333333,0.8,2,7,0,8,0)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,0.066667,2,1.666667,2,7,0,8,0)
(v6,13,65536,1.666667,2,1.666667,2.4,7,0,8,0)
(v6,14,65536,1.666667,2.4,0.066667,2.4,7,0,8,0)
(v6,15,65536,0.066667,2.4,0.066667,2,7,0,8,0))))
(T12,16,12,0.133333,2.093333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.523 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Erase error message line<HR>
and exit subprogram
<End Text>)
(T12,17,12,0.933333,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,18,12,2.2,1.826667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,2.666667,1.8,4.4,1.8,7,0,8,0)
(v6,21,65536,4.4,1.8,4.4,2.2,7,0,8,0)
(v6,22,65536,4.4,2.2,2.666667,2.2,7,0,8,0)
(v6,23,65536,2.666667,2.2,2.666667,1.8,7,0,8,0))))
(T12,24,12,2.733333,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.563 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
case Citation_to_Process
<End Text>)
(v6,25,0,3.533333,2.666667,4.4,2.2,7,0,8,0)
(v6,26,0,3.533333,2.666667,2.666667,2.2,7,0,8,0)
(p8,28,8,5,7,127
(g9,28,0
(g9,28,0
(v6,28,65536,1.896667,4,3.496667,4,7,0,8,0)
(v6,29,65536,3.496667,4,3.496667,5.2,7,0,8,0)
(v6,30,65536,3.496667,5.2,1.896667,5.2,7,0,8,0)
(v6,31,65536,1.896667,5.2,1.896667,4,7,0,8,0))))
(T12,32,12,2.03,4.093333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.313 inches, Height = 0.898 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the following<HR>
citations with the corresponding call to Citation_Handler: N, P, NEXT,
PREVIOUS, POP, REFRESH
<End Text>)
(p8,34,8,5,7,127
(g9,34,0
(g9,34,0
(v6,34,65536,3.63,4,5.096667,4,7,0,8,0)
(v6,35,65536,5.096667,4,5.096667,4.8,7,0,8,0)
(v6,36,65536,5.096667,4.8,3.63,4.8,7,0,8,0)
(v6,37,65536,3.63,4.8,3.63,4,7,0,8,0))))
(T12,38,12,3.696667,4.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.313 inches, Height = 0.746 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the following<HR>
citations with the corresponding call to Print_Log_Handler: PRINT,
PS
<End Text>)
(p8,40,8,5,7,127
(g9,40,0
(g9,40,0
(v6,40,65536,3.763333,5,4.933333,5,7,0,8,0)
(v6,41,65536,4.933333,5,4.933333,5.466667,7,0,8,0)
(v6,42,65536,4.933333,5.466667,3.763333,5.466667,7,0,8,0)
(v6,43,65536,3.763333,5.466667,3.763333,5,7,0,8,0))))
(T12,44,12,3.83,5.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.063 inches, Height = 0.441 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay current<HR>
screen (in case of an error)
<End Text>)
(v6,45,0,2.066667,2,2.066667,1.866667,7,0,8,0)
(v6,46,0,2.066667,2,2.666667,2,7,0,8,0)
(p8,48,8,5,7,127
(g9,48,0
(g9,48,0
(v6,48,65536,5.23,4,6.03,4,7,0,8,0)
(v6,49,65536,6.03,4,6.03,4.933333,7,0,8,0)
(v6,50,65536,6.03,4.933333,5.23,4.933333,7,0,8,0)
(v6,51,65536,5.23,4.933333,5.23,4,7,0,8,0))))
(T12,52,12,5.296667,4.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 0.723 inches, Height = 0.898 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the<HR>
HELP command as a Push of the HELP Citation
<End Text>)
(p8,54,8,5,7,127
(g9,54,0
(g9,54,0
(v6,54,65536,0.963333,4,1.763333,4,7,0,8,0)
(v6,55,65536,1.763333,4,1.763333,4.866667,7,0,8,0)
(v6,56,65536,1.763333,4.866667,0.963333,4.866667,7,0,8,0)
(v6,57,65536,0.963333,4.866667,0.963333,4,7,0,8,0))))
(T12,58,12,1.03,4.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 0.723 inches, Height = 0.746 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the<HR>
PAUSE command as a 5 second delay
<End Text>)
(p8,60,8,5,7,127
(g9,60,0
(g9,60,0
(v6,60,65536,0.03,4,0.896667,4,7,0,8,0)
(v6,61,65536,0.896667,4,0.896667,5.933333,7,0,8,0)
(v6,62,65536,0.896667,5.933333,0.03,5.933333,7,0,8,0)
(v6,63,65536,0.03,5.933333,0.03,4,7,0,8,0))))
(T12,64,12,0.106667,4.053333,7,127,5,7,127,8,0,3,
<!Page, Width = 0.723 inches, Height = 1.811 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the<HR>
USER_INPUT Citation by getting a line from the user; preparse and
process the PUSH, /, and // Citations
<End Text>)
(p8,66,8,5,7,127
(g9,66,0
(g9,66,0
(v6,66,65536,4.8,1.466667,6,1.466667,7,0,8,0)
(v6,67,65536,6,1.466667,6,2.333333,7,0,8,0)
(v6,68,65536,6,2.333333,4.8,2.333333,7,0,8,0)
(v6,69,65536,4.8,2.333333,4.8,1.466667,7,0,8,0))))
(T12,70,12,4.87,1.52,7,127,5,7,127,8,0,3,
<!Page, Width = 1.063 inches, Height = 0.746 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the n.n.n<HR>
and l Citations as Citation_Handler.View_Citation
<End Text>)
(p8,72,8,5,7,127
(g9,72,0
(g9,72,0
(v6,72,65536,4.8,2.533333,5.733333,2.533333,7,0,8,0)
(v6,73,65536,5.733333,2.533333,5.733333,3.466667,7,0,8,0)
(v6,74,65536,5.733333,3.466667,4.8,3.466667,7,0,8,0)
(v6,75,65536,4.8,3.466667,4.8,2.533333,7,0,8,0))))
(T12,76,12,4.876667,2.586667,7,127,5,7,127,8,0,3,
<!Page, Width = 0.723 inches, Height = 0.746 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Process the<HR>
ERROR Citation as an Invalid Command
<End Text>)
(v6,77,0,4.4,1.933333,4.8,1.933333,7,0,8,0)
(v6,78,0,4.533333,2.066667,4.4,2.066667,7,0,8,0)
(v6,79,0,4.533333,2.066667,4.533333,2.933333,7,0,8,0)
(v6,80,0,4.533333,2.933333,4.8,2.933333,7,0,8,0)
(v6,81,0,4.268012,2.27107,4.266667,3.6,7,0,8,0)
(v6,82,0,4.266667,3.6,5.6,3.6,7,0,8,0)
(v6,83,0,5.6,3.6,5.6,4,7,0,8,0)
(v6,84,0,4,4,4.005627,2.412355,7,0,8,0)
(v6,85,0,3.2,4,3.197798,2.485994,7,0,8,0)
(v6,86,0,2.997431,2.378104,3,3.2,7,0,8,0)
(v6,87,0,3,3.2,1.4,3.2,7,0,8,0)
(v6,88,0,1.4,3.2,1.4,4,7,0,8,0)
(v6,89,0,2.8,2.8,2.79786,2.270642,7,0,8,0)
(v6,90,0,2.8,2.8,0.4,2.8,7,0,8,0)
(v6,91,0,0.4,2.8,0.4,4,7,0,8,0)
(p8,93,8,5,7,127
(g9,93,0
(g9,93,0
(v6,93,65536,3.6,0.933333,5.6,0.933333,7,0,8,0)
(v6,94,65536,5.6,0.933333,5.6,1.333333,7,0,8,0)
(v6,95,65536,5.6,1.333333,3.6,1.333333,7,0,8,0)
(v6,96,65536,3.6,1.333333,3.6,0.933333,7,0,8,0))))
(T12,97,12,3.8,1,7,127,5,7,127,8,0,3,
<!Page, Width = 1.653 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Set Citation_to_Process as<HR>
USER_INPUT
<End Text>)
(v6,98,0,4.4,4.8,4.4,5,7,0,8,0)
(v6,99,0,6.4,1.066667,6.4,6.4,7,0,8,0)
(v6,100,0,6.03,4.4,6.4,4.4,7,0,8,0)
(v6,101,0,4.933333,5.2,6.4,5.2,7,0,8,0)
(v6,102,0,2.666667,5.2,2.666667,5.533333,7,0,8,0)
(v6,103,0,2.666667,5.533333,6.4,5.533333,7,0,8,0)
(v6,104,0,1.4,4.866667,1.4,5.8,7,0,8,0)
(v6,105,0,1.4,5.8,6.4,5.8,7,0,8,0)
(v6,106,0,0.4,5.933333,0.4,6.4,7,0,8,0)
(v6,107,0,0.4,6.4,6.4,6.4,7,0,8,0)
(v6,108,0,6.4,1.066667,5.6,1.066667,7,0,8,0)
(v6,109,0,3.6,1.2,3,1.2,7,0,8,0)
(v6,110,0,3,1.2,3,1.333333,7,0,8,0)
(v6,111,0,3,1.333333,2.6,1.333333,7,0,8,0)
(v6,112,0,6,1.933333,6.4,1.933333,7,0,8,0)
(v6,113,0,5.733333,3,6.4,3,7,0,8,0)
(g9,114,8
(v6,114,0,2,0.4,2,0.2,7,0,8,0)
(g9,116,1025
(p8,116,0,5,7,0
(g9,116,0
(g9,116,0
(v6,116,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,117,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,118,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,119,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,120,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,121,8
(v6,121,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,123,1025
(p8,123,0,5,7,0
(g9,123,0
(g9,123,0
(v6,123,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,124,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,125,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,126,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,127,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,128,8
(v6,128,0,0.4,4,0.4,3.8,7,0,8,0)
(g9,130,1025
(p8,130,0,5,7,0
(g9,130,0
(g9,130,0
(v6,130,0,0.345275,3.849648,0.4,4,7,0,8,0)
(v6,131,0,0.4,4,0.454723,3.849648,7,0,8,0)
(v6,132,0,0.454723,3.849648,0.4,3.881722,7,0,8,0)
(v6,133,0,0.4,3.881722,0.345275,3.849648,7,0,8,0))))
(v6,134,25167905,0.4,4,0.4,4,7,127,8,0)))
(g9,135,8
(v6,135,0,1.4,4,1.4,3.8,7,0,8,0)
(g9,137,1025
(p8,137,0,5,7,0
(g9,137,0
(g9,137,0
(v6,137,0,1.345275,3.849648,1.4,4,7,0,8,0)
(v6,138,0,1.4,4,1.454723,3.849648,7,0,8,0)
(v6,139,0,1.454723,3.849648,1.4,3.881722,7,0,8,0)
(v6,140,0,1.4,3.881722,1.345275,3.849648,7,0,8,0))))
(v6,141,25167905,1.4,4,1.4,4,7,127,8,0)))
(g9,142,8
(v6,142,0,3.2,4,3.2,3.8,7,0,8,0)
(g9,144,1025
(p8,144,0,5,7,0
(g9,144,0
(g9,144,0
(v6,144,0,3.145275,3.849648,3.2,4,7,0,8,0)
(v6,145,0,3.2,4,3.254723,3.849648,7,0,8,0)
(v6,146,0,3.254723,3.849648,3.2,3.881722,7,0,8,0)
(v6,147,0,3.2,3.881722,3.145275,3.849648,7,0,8,0))))
(v6,148,25167905,3.2,4,3.2,4,7,127,8,0)))
(g9,149,8
(v6,149,0,4,4,4,3.8,7,0,8,0)
(g9,151,1025
(p8,151,0,5,7,0
(g9,151,0
(g9,151,0
(v6,151,0,3.945275,3.849648,4,4,7,0,8,0)
(v6,152,0,4,4,4.054722,3.849648,7,0,8,0)
(v6,153,0,4.054722,3.849648,4,3.881722,7,0,8,0)
(v6,154,0,4,3.881722,3.945275,3.849648,7,0,8,0))))
(v6,155,25167905,4,4,4,4,7,127,8,0)))
(g9,156,8
(v6,156,0,5.6,4,5.6,3.8,7,0,8,0)
(g9,158,1025
(p8,158,0,5,7,0
(g9,158,0
(g9,158,0
(v6,158,0,5.545275,3.849648,5.6,4,7,0,8,0)
(v6,159,0,5.6,4,5.654723,3.849648,7,0,8,0)
(v6,160,0,5.654723,3.849648,5.6,3.881722,7,0,8,0)
(v6,161,0,5.6,3.881722,5.545275,3.849648,7,0,8,0))))
(v6,162,25167905,5.6,4,5.6,4,7,127,8,0)))
(g9,163,8
(v6,163,0,6.4,6.4,6.2,6.4,7,0,8,0)
(g9,165,1025
(p8,165,0,5,7,0
(g9,165,0
(g9,165,0
(v6,165,0,6.249648,6.454725,6.4,6.4,7,0,8,0)
(v6,166,0,6.4,6.4,6.249648,6.345277,7,0,8,0)
(v6,167,0,6.249648,6.345277,6.281722,6.4,7,0,8,0)
(v6,168,0,6.281722,6.4,6.249648,6.454725,7,0,8,0))))
(v6,169,25167905,6.4,6.4,6.4,6.4,7,127,8,0)))
(g9,170,8
(v6,170,0,6.4,5.8,6.2,5.8,7,0,8,0)
(g9,172,1025
(p8,172,0,5,7,0
(g9,172,0
(g9,172,0
(v6,172,0,6.249648,5.854725,6.4,5.8,7,0,8,0)
(v6,173,0,6.4,5.8,6.249648,5.745277,7,0,8,0)
(v6,174,0,6.249648,5.745277,6.281722,5.8,7,0,8,0)
(v6,175,0,6.281722,5.8,6.249648,5.854725,7,0,8,0))))
(v6,176,25167905,6.4,5.8,6.4,5.8,7,127,8,0)))
(g9,177,8
(v6,177,0,6.386667,5.533333,6.186667,5.533333,7,0,8,0)
(g9,179,1025
(p8,179,0,5,7,0
(g9,179,0
(g9,179,0
(v6,179,0,6.236313,5.588057,6.386667,5.533333,7,0,8,0)
(v6,180,0,6.386667,5.533333,6.236313,5.478609,7,0,8,0)
(v6,181,0,6.236313,5.478609,6.268389,5.533333,7,0,8,0)
(v6,182,0,6.268389,5.533333,6.236313,5.588057,7,0,8,0))))
(v6,183,25167905,6.386667,5.533333,6.386667,5.533333,7,127,8,0)))
(g9,184,8
(v6,184,0,6.4,5.2,6.2,5.2,7,0,8,0)
(g9,186,1025
(p8,186,0,5,7,0
(g9,186,0
(g9,186,0
(v6,186,0,6.249648,5.254725,6.4,5.2,7,0,8,0)
(v6,187,0,6.4,5.2,6.249648,5.145277,7,0,8,0)
(v6,188,0,6.249648,5.145277,6.281722,5.2,7,0,8,0)
(v6,189,0,6.281722,5.2,6.249648,5.254725,7,0,8,0))))
(v6,190,25167905,6.4,5.2,6.4,5.2,7,127,8,0)))
(g9,191,8
(v6,191,0,6.4,4.4,6.2,4.4,7,0,8,0)
(g9,193,1025
(p8,193,0,5,7,0
(g9,193,0
(g9,193,0
(v6,193,0,6.249648,4.454725,6.4,4.4,7,0,8,0)
(v6,194,0,6.4,4.4,6.249648,4.345277,7,0,8,0)
(v6,195,0,6.249648,4.345277,6.281722,4.4,7,0,8,0)
(v6,196,0,6.281722,4.4,6.249648,4.454725,7,0,8,0))))
(v6,197,25167905,6.4,4.4,6.4,4.4,7,127,8,0)))
(g9,198,8
(v6,198,0,6.4,3,6.2,3,7,0,8,0)
(g9,200,1025
(p8,200,0,5,7,0
(g9,200,0
(g9,200,0
(v6,200,0,6.249648,3.054725,6.4,3,7,0,8,0)
(v6,201,0,6.4,3,6.249648,2.945277,7,0,8,0)
(v6,202,0,6.249648,2.945277,6.281722,3,7,0,8,0)
(v6,203,0,6.281722,3,6.249648,3.054725,7,0,8,0))))
(v6,204,25167905,6.4,3,6.4,3,7,127,8,0)))
(g9,205,8
(v6,205,0,6.4,1.933333,6.2,1.933333,7,0,8,0)
(g9,207,1025
(p8,207,0,5,7,0
(g9,207,0
(g9,207,0
(v6,207,0,6.249648,1.988058,6.4,1.933333,7,0,8,0)
(v6,208,0,6.4,1.933333,6.249648,1.87861,7,0,8,0)
(v6,209,0,6.249648,1.87861,6.281722,1.933333,7,0,8,0)
(v6,210,0,6.281722,1.933333,6.249648,1.988058,7,0,8,0))))
(v6,211,25167905,6.4,1.933333,6.4,1.933333,7,127,8,0)))
(g9,212,8
(v6,212,0,4.8,2.933333,4.6,2.933333,7,0,8,0)
(g9,214,1025
(p8,214,0,5,7,0
(g9,214,0
(g9,214,0
(v6,214,0,4.649648,2.988058,4.8,2.933333,7,0,8,0)
(v6,215,0,4.8,2.933333,4.649648,2.87861,7,0,8,0)
(v6,216,0,4.649648,2.87861,4.681722,2.933333,7,0,8,0)
(v6,217,0,4.681722,2.933333,4.649648,2.988058,7,0,8,0))))
(v6,218,25167905,4.8,2.933333,4.8,2.933333,7,127,8,0)))
(g9,219,8
(v6,219,0,4.8,1.933333,4.6,1.933333,7,0,8,0)
(g9,221,1025
(p8,221,0,5,7,0
(g9,221,0
(g9,221,0
(v6,221,0,4.649648,1.988058,4.8,1.933333,7,0,8,0)
(v6,222,0,4.8,1.933333,4.649648,1.87861,7,0,8,0)
(v6,223,0,4.649648,1.87861,4.681722,1.933333,7,0,8,0)
(v6,224,0,4.681722,1.933333,4.649648,1.988058,7,0,8,0))))
(v6,225,25167905,4.8,1.933333,4.8,1.933333,7,127,8,0)))
(g9,226,8
(v6,226,0,2.666667,2,2.466667,2,7,0,8,0)
(g9,228,1025
(p8,228,0,5,7,0
(g9,228,0
(g9,228,0
(v6,228,0,2.516314,2.054725,2.666667,2,7,0,8,0)
(v6,229,0,2.666667,2,2.516314,1.945277,7,0,8,0)
(v6,230,0,2.516314,1.945277,2.548389,2,7,0,8,0)
(v6,231,0,2.548389,2,2.516314,2.054725,7,0,8,0))))
(v6,232,25167905,2.666667,2,2.666667,2,7,127,8,0)))
(g9,233,8
(v6,233,0,2.6,1.333333,2.8,1.333333,7,0,8,0)
(g9,235,1025
(p8,235,0,5,7,0
(g9,235,0
(g9,235,0
(v6,235,0,2.750352,1.278608,2.6,1.333333,7,0,8,0)
(v6,236,0,2.6,1.333333,2.750352,1.388057,7,0,8,0)
(v6,237,0,2.750352,1.388057,2.718278,1.333333,7,0,8,0)
(v6,238,0,2.718278,1.333333,2.750352,1.278608,7,0,8,0))))
(v6,239,25167905,2.6,1.333333,2.6,1.333333,7,127,8,0)))
(g9,240,8
(v6,240,0,5.6,1.066667,5.8,1.066667,7,0,8,0)
(g9,242,1025
(p8,242,0,5,7,0
(g9,242,0
(g9,242,0
(v6,242,0,5.750352,1.011942,5.6,1.066667,7,0,8,0)
(v6,243,0,5.6,1.066667,5.750352,1.12139,7,0,8,0)
(v6,244,0,5.750352,1.12139,5.718278,1.066667,7,0,8,0)
(v6,245,0,5.718278,1.066667,5.750352,1.011942,7,0,8,0))))
(v6,246,25167905,5.6,1.066667,5.6,1.066667,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection,
Begin New Page = yes>
<|,35><"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.8.><End Sub>
<F0> Screen_Display_Controller Package
<paragraph>
The Screen_Display_Controller package controls all output to the VT100
display. The Screen_Display_Controller serves as the single source
for error messages.
<subhead>
Mapping to Requirements
<paragraph>
The Screen_Display_Controller addresses the VT100 external interfaces
requirement in Section 3.1 of the SRS. The VT100 Display also appears
in Sections 3.3 and 3.4 of the SRS. VT100 adaptation issues are discussed
in Section 3.5 of the SRS. The Screen_Display_Controller implements
a large part of the user interface required in Section 3.8 of the
SRS.
<subhead>
Design
<paragraph>
The Screen_Display_Controller Package presents the following sets
of methods, types, data, and exceptions in its interface:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,0.8,2.373333,2.4,2.373333,7,0,8,0)
(v6,3,65536,2.4,2.373333,2.4,2.773333,7,0,8,0)
(v6,4,65536,2.4,2.773333,0.8,2.773333,7,0,8,0)
(v6,5,65536,0.8,2.773333,0.8,2.373333,7,0,8,0))))
(p8,7,8,5,7,127
(g9,7,0
(g9,7,0
(v6,7,65536,0.8,2.906667,2.4,2.906667,7,0,8,0)
(v6,8,65536,2.4,2.906667,2.4,3.306667,7,0,8,0)
(v6,9,65536,2.4,3.306667,0.8,3.306667,7,0,8,0)
(v6,10,65536,0.8,3.306667,0.8,2.906667,7,0,8,0))))
(t14,11,0,0.933333,2.64,0,7,0,0,,wst:swiss10,Show_Text)
(t14,12,0,0.933333,3.173333,0,7,0,0,,wst:swiss10,Mark_Line)
(p8,14,8,5,7,127
(g9,14,0
(g9,14,0
(v6,14,65536,0.8,0.373333,5.6,0.373333,7,0,8,0)
(v6,15,65536,5.6,0.373333,5.6,4.64,7,0,8,0)
(v6,16,65536,5.6,4.64,0.8,4.64,7,0,8,0)
(v6,17,65536,0.8,4.64,0.8,0.373333,7,0,8,0))))
(t14,18,0,0.866667,0.64,0,7,0,0,,wst:swiss14,Screen_Display_Controller)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.8,3.44,2.4,3.44,7,0,8,0)
(v6,21,65536,2.4,3.44,2.4,3.84,7,0,8,0)
(v6,22,65536,2.4,3.84,0.8,3.84,7,0,8,0)
(v6,23,65536,0.8,3.84,0.8,3.44,7,0,8,0))))
(t14,24,0,0.933333,3.706667,0,7,0,0,,wst:swiss10,Show_Prompt)
(e8,25,0,0.8,0.84,2.4,0.84,0.8,1.24,7,127,5,7,0,8,0)
(t14,26,0,0.933333,1.106667,0,7,0,0,,wst:swiss10,ERROR_MESSAGE_ID)
(e8,27,0,0.8,1.306667,2.4,1.306667,0.8,1.706667,7,127,5,7,0,8,0)
(e8,28,0,0.8,1.76,3.2,1.76,0.8,2.24,7,127,5,7,0,8,0)
(t14,29,0,1.066667,1.573333,0,7,0,0,,wst:swiss10,SCREEN_BUFFER)
(t14,30,0,1.133333,2.04,0,7,0,0,,wst:swiss10,SCREEN_BUFFER_POINTER)
(p8,32,8,5,7,127
(g9,32,0
(g9,32,0
(v6,32,65536,4,2.4,5.6,2.4,7,0,8,0)
(v6,33,65536,5.6,2.4,5.6,2.8,7,0,8,0)
(v6,34,65536,5.6,2.8,4,2.8,7,0,8,0)
(v6,35,65536,4,2.8,4,2.4,7,0,8,0))))
(p8,37,8,5,7,127
(g9,37,0
(g9,37,0
(v6,37,65536,3.466667,2.906667,5.6,2.906667,7,0,8,0)
(v6,38,65536,5.6,2.906667,5.6,3.306667,7,0,8,0)
(v6,39,65536,5.6,3.306667,3.466667,3.306667,7,0,8,0)
(v6,40,65536,3.466667,3.306667,3.466667,2.906667,7,0,8,0))))
(t14,41,0,4.133333,2.666667,0,7,0,0,,wst:swiss10,Show_Error)
(t14,42,0,3.6,3.173333,0,7,0,0,,wst:swiss10,Print_Log_File_Closed_Message)
(p8,44,8,5,7,127
(g9,44,0
(g9,44,0
(v6,44,65536,4,3.466667,5.6,3.466667,7,0,8,0)
(v6,45,65536,5.6,3.466667,5.6,3.866667,7,0,8,0)
(v6,46,65536,5.6,3.866667,4,3.866667,7,0,8,0)
(v6,47,65536,4,3.866667,4,3.466667,7,0,8,0))))
(t14,48,0,4.133333,3.733333,0,7,0,0,,wst:swiss10,Convert)
(p8,50,8,5,7,127
(g9,50,0
(g9,50,0
(v6,50,65536,4,4,5.6,4,7,0,8,0)
(v6,51,65536,5.6,4,5.6,4.4,7,0,8,0)
(v6,52,65536,5.6,4.4,4,4.4,7,0,8,0)
(v6,53,65536,4,4.4,4,4,7,0,8,0))))
(t14,54,0,4.133333,4.266667,0,7,0,0,,wst:swiss10,Citation_to_Display)
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
In this OID symbol, the ovals represent data types and the rectangles
represent subprograms.
<subhead,
Begin New Page = yes>
<|,36>CSC Specification
<codepara>
-- ***********************************************************************<HR>
-- ON-LINE Ada LANGUAGE REFERENCE MANUAL<HR>
-- by Richard Conn<HR>
with SYSDEP;<HR>
with Citation_Definition;<HR>
with System; -- standard Ada environment<HR>
package Screen_Display_Controller is<HR>
<HR>
type ERROR_MESSAGE_ID is (INVALID_COMMAND,<HR>
CANNOT_ADVANCE, CANNOT_BACK,<HR>
STACK_EMPTY, STACK_FULL,<HR>
PRINT_LOG,<HR>
TOO_MANY_SCREENS,<HR>
SEARCH_STRING,<HR>
DAF_NOT_FOUND,<HR>
INTERNAL_DAF_NDFO_ERROR,<HR>
INTERNAL_DAF_RE_ERROR,<HR>
INTERNAL_DAF_SO_ERROR,<HR>
INTERNAL_DAF_UE_ERROR,<HR>
UNEXPECTED_ERROR);<HR>
-- Kinds of error messages which may be displayed<HR>
<HR>
type SCREEN_BUFFER is array (NATURAL'(1)..SYSDEP.Text_Line_Count)
of<HR>
DAF_Handler.LINE;<HR>
-- Lines associated with a screen<HR>
<HR>
type SCREEN_BUFFER_POINTER is access SCREEN_BUFFER;<HR>
-- Pointer to a screen buffer so the full buffer does not have to
be<HR>
-- passed<HR>
<HR>
procedure Show_Text;<HR>
-- Clear screen and display the text area<HR>
<HR>
procedure Mark_Line (Number : in NATURAL);<HR>
-- Place a mark on the indicated line<HR>
<HR>
procedure Show_Prompt;<HR>
-- Display prompt on command line; if Search_String is null, do
not<HR>
-- display it; clear error message if one is present after one call<HR>
-- to Show_Prompt<HR>
<HR>
procedure Show_Error (Item : in ERROR_MESSAGE_ID);<HR>
-- Display error message<HR>
<HR>
procedure Print_Log_File_Closed_Message;<HR>
-- Print the message that the indicated print log file is closed<HR>
<HR>
function Convert (SB_Address : in System.ADDRESS) return<HR>
SCREEN_BUFFER_POINTER;<HR>
-- Given the address of a screen buffer object, return a pointer
to it<HR>
<HR>
function Citation_to_Display (CitX : in Citation_Definition.CITATION_ID)<HR>
return STRING;<HR>
<|,37> -- Given a citation ID, return a string of the form "n.n.n"
or "keyword"<HR>
<HR>
end Screen_Display_Controller;
<subhead>
Required Program Units
<paragraph>
The following program units are withed into the specification:
<codepara>
SYSDEP<HR>
Citation_Definition<HR>
System
<paragraph>
The following program units are withed into the body:
<codepara>
DAF_Handler<HR>
Primitive_Citation_Handler<HR>
Console<HR>
Unchecked_Conversion
<subhead>
Internal Global Code, Types, and Objects
<paragraph>
The following are in the body:
<codepara>
Error_Message_Display_Counter : NATURAL := 0;<HR>
-- counts the number of times since the last error message was displayed;
used<HR>
-- to clear the error message line<HR>
<HR>
Search_String_Limit : constant := 12;<HR>
-- maximum number of characters in the search string to be displayed
on the<HR>
-- command prompt line<HR>
<HR>
subtype MSTRING is STRING (1..52);<HR>
-- type of STRING used to store the error messages, based on the
length of the<HR>
-- longest error message<HR>
<HR>
Messages : constant array (ERROR_MESSAGE_ID) of MSTRING := ( -- detail
omitted<HR>
);<HR>
-- the text of all error messages to be displayed
<subsubsubsection,
Begin New Page = yes>
<|,38><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.1.><End Sub>
<F0> Show_Text Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.4,0.4,2.4,0.8,7,0,8,0)
(t14,2,0,2.6,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.6,0.8,3.2,0.8,7,0,8,0)
(v6,5,65536,3.2,0.8,3.2,1.2,7,0,8,0)
(v6,6,65536,3.2,1.2,1.6,1.2,7,0,8,0)
(v6,7,65536,1.6,1.2,1.6,0.8,7,0,8,0))))
(T12,8,12,1.85,0.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.083 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Erase Screen and<HR>
Home Cursor
<End Text>)
(v6,9,0,2.4,1.2,2.4,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,1.6,1.6,3.333333,1.6,7,0,8,0)
(v6,12,65536,3.333333,1.6,3.333333,2.066667,7,0,8,0)
(v6,13,65536,3.333333,2.066667,1.6,2.066667,7,0,8,0)
(v6,14,65536,1.6,2.066667,1.6,1.6,7,0,8,0))))
(T12,15,12,1.733333,1.626667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.52 inches, Height = 0.441 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Access screen data from<HR>
Primitive_Citation_Handler
<End Text>)
(v6,16,0,2.4,2.066667,2.4,2.4,7,0,8,0)
(v6,17,0,2.4,2.4,3.6,2.4,7,0,8,0)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,3.6,2.2,5.2,2.2,7,0,8,0)
(v6,20,65536,5.2,2.2,5.2,2.6,7,0,8,0)
(v6,21,65536,5.2,2.6,3.6,2.6,7,0,8,0)
(v6,22,65536,3.6,2.6,3.6,2.2,7,0,8,0))))
(T12,23,12,3.666667,2.226667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.473 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Display all but UNUSED<HR>
lines using Console
<End Text>)
(g9,24,8
(v6,24,0,2.4,0.4,2.4,0.2,7,0,8,0)
(g9,26,1025
(p8,26,0,5,7,0
(g9,26,0
(g9,26,0
(v6,26,0,2.345275,0.249648,2.4,0.4,7,0,8,0)
(v6,27,0,2.4,0.4,2.454722,0.249648,7,0,8,0)
(v6,28,0,2.454722,0.249648,2.4,0.281722,7,0,8,0)
(v6,29,0,2.4,0.281722,2.345275,0.249648,7,0,8,0))))
(v6,30,25167905,2.4,0.4,2.4,0.4,7,127,8,0)))
(g9,31,8
(v6,31,0,2.4,1.6,2.4,1.4,7,0,8,0)
(g9,33,1025
(p8,33,0,5,7,0
(g9,33,0
(g9,33,0
(v6,33,0,2.345275,1.449648,2.4,1.6,7,0,8,0)
(v6,34,0,2.4,1.6,2.454722,1.449648,7,0,8,0)
(v6,35,0,2.454722,1.449648,2.4,1.481722,7,0,8,0)
(v6,36,0,2.4,1.481722,2.345275,1.449648,7,0,8,0))))
(v6,37,25167905,2.4,1.6,2.4,1.6,7,127,8,0)))
(g9,38,8
(v6,38,0,3.6,2.4,3.4,2.4,7,0,8,0)
(g9,40,1025
(p8,40,0,5,7,0
(g9,40,0
(g9,40,0
(v6,40,0,3.449648,2.454725,3.6,2.4,7,0,8,0)
(v6,41,0,3.6,2.4,3.449648,2.345277,7,0,8,0)
(v6,42,0,3.449648,2.345277,3.481722,2.4,7,0,8,0)
(v6,43,0,3.481722,2.4,3.449648,2.454725,7,0,8,0))))
(v6,44,25167905,3.6,2.4,3.6,2.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.2.><End Sub>
<F0> Mark_Line Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.25 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.8,0.8,4.8,0.8,7,0,8,0)
(v6,5,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,6,65536,4.8,1.2,1.8,1.2,7,0,8,0)
(v6,7,65536,1.8,1.2,1.8,0.8,7,0,8,0))))
(T12,8,12,1.933333,0.826667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.683 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Position to SYSDEP.Search_Pointer_Column<HR>
using Console.Position_Cursor
<End Text>)
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,2.4,1.6,4,1.6,7,0,8,0)
(v6,12,65536,4,1.6,4,2,7,0,8,0)
(v6,13,65536,4,2,2.4,2,7,0,8,0)
(v6,14,65536,2.4,2,2.4,1.6,7,0,8,0))))
(T12,15,12,2.866667,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.697 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Output "<<"
<End Text>)
(g9,16,8
(v6,16,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,19,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,20,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,21,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,22,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,23,8
(v6,23,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,26,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,27,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,28,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,29,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,39><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.3.><End Sub>
<F0> Show_Prompt Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.25 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.6,0.4,3.6,0.8,7,0,8,0)
(t14,2,0,3.8,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.6,0.8,5.6,0.8,7,0,8,0)
(v6,5,65536,5.6,0.8,5.6,1.2,7,0,8,0)
(v6,6,65536,5.6,1.2,1.6,1.2,7,0,8,0)
(v6,7,65536,1.6,1.2,1.6,0.8,7,0,8,0))))
(T12,8,12,1.666667,0.826667,7,127,5,7,127,8,0,7,
<!Page, Width = 3.847 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Get status info from Primitive_Citation_Handler.Current_Citation
<End Text>)
(v6,9,0,3.6,1.2,3.6,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,2.8,1.6,4.4,1.6,7,0,8,0)
(v6,12,65536,4.4,1.6,4.4,2,7,0,8,0)
(v6,13,65536,4.4,2,2.8,2,7,0,8,0)
(v6,14,65536,2.8,2,2.8,1.6,7,0,8,0))))
(T12,15,12,3.066667,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.93 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Display prompt
<End Text>)
(g9,16,8
(v6,16,0,3.6,0.4,3.6,0.2,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,3.545275,0.249648,3.6,0.4,7,0,8,0)
(v6,19,0,3.6,0.4,3.654723,0.249648,7,0,8,0)
(v6,20,0,3.654723,0.249648,3.6,0.281722,7,0,8,0)
(v6,21,0,3.6,0.281722,3.545275,0.249648,7,0,8,0))))
(v6,22,25167905,3.6,0.4,3.6,0.4,7,127,8,0)))
(g9,23,8
(v6,23,0,3.6,1.6,3.6,1.4,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,3.545275,1.449648,3.6,1.6,7,0,8,0)
(v6,26,0,3.6,1.6,3.654723,1.449648,7,0,8,0)
(v6,27,0,3.654723,1.449648,3.6,1.481722,7,0,8,0)
(v6,28,0,3.6,1.481722,3.545275,1.449648,7,0,8,0))))
(v6,29,25167905,3.6,1.6,3.6,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.4.><End Sub>
<F0> Show_Error Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,0.8,0.8,3.2,0.8,7,0,8,0)
(v6,5,65536,3.2,0.8,3.2,1.2,7,0,8,0)
(v6,6,65536,3.2,1.2,0.8,1.2,7,0,8,0)
(v6,7,65536,0.8,1.2,0.8,0.8,7,0,8,0))))
(T12,8,12,1.066667,0.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.933 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Position cursor on SYSDEP.<HR>
Error_Message_Line_Number
<End Text>)
(v6,9,0,2,1.2,2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,1.2,1.6,2.8,1.6,7,0,8,0)
(v6,12,65536,2.8,1.6,2.8,2,7,0,8,0)
(v6,13,65536,2.8,2,1.2,2,7,0,8,0)
(v6,14,65536,1.2,2,1.2,1.6,7,0,8,0))))
(T12,15,12,1.266667,1.693333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.373 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Display message from<HR>
array Messages
<End Text>)
(v6,16,0,2,2,2,2.4,7,0,8,0)
(v6,17,0,2,2.4,3.2,2.4,7,0,8,0)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,3.2,2.2,5.866667,2.2,7,0,8,0)
(v6,20,65536,5.866667,2.2,5.866667,2.6,7,0,8,0)
(v6,21,65536,5.866667,2.6,3.2,2.6,7,0,8,0)
(v6,22,65536,3.2,2.6,3.2,2.2,7,0,8,0))))
(T12,23,12,3.266667,2.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.513 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Set Error_Message_Display_Counter to 2
<End Text>)
(g9,24,8
(v6,24,0,2,0.4,2,0.2,7,0,8,0)
(g9,26,1025
(p8,26,0,5,7,0
(g9,26,0
(g9,26,0
(v6,26,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,27,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,28,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,29,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,30,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,31,8
(v6,31,0,2,1.6,2,1.4,7,0,8,0)
(g9,33,1025
(p8,33,0,5,7,0
(g9,33,0
(g9,33,0
(v6,33,0,1.945275,1.449648,2,1.6,7,0,8,0)
(v6,34,0,2,1.6,2.054723,1.449648,7,0,8,0)
(v6,35,0,2.054723,1.449648,2,1.481722,7,0,8,0)
(v6,36,0,2,1.481722,1.945275,1.449648,7,0,8,0))))
(v6,37,25167905,2,1.6,2,1.6,7,127,8,0)))
(g9,38,8
(v6,38,0,3.2,2.4,3,2.4,7,0,8,0)
(g9,40,1025
(p8,40,0,5,7,0
(g9,40,0
(g9,40,0
(v6,40,0,3.049648,2.454725,3.2,2.4,7,0,8,0)
(v6,41,0,3.2,2.4,3.049648,2.345277,7,0,8,0)
(v6,42,0,3.049648,2.345277,3.081722,2.4,7,0,8,0)
(v6,43,0,3.081722,2.4,3.049648,2.454725,7,0,8,0))))
(v6,44,25167905,3.2,2.4,3.2,2.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,40><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.5.><End Sub>
<F0> Print_Log_File_Close_Message Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.25 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.6,0.8,4.8,0.8,7,0,8,0)
(v6,5,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,6,65536,4.8,1.2,1.6,1.2,7,0,8,0)
(v6,7,65536,1.6,1.2,1.6,0.8,7,0,8,0))))
(T12,8,12,1.666667,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 3.06 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Position on SYSDEP.Error_Message_Line_Number
<End Text>)
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,2,1.6,4.4,1.6,7,0,8,0)
(v6,12,65536,4.4,1.6,4.4,2,7,0,8,0)
(v6,13,65536,4.4,2,2,2,7,0,8,0)
(v6,14,65536,2,2,2,1.6,7,0,8,0))))
(T12,15,12,2.2,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.107 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Print message, including file name
<End Text>)
(g9,16,8
(v6,16,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,19,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,20,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,21,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,22,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,23,8
(v6,23,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,26,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,27,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,28,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,29,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.6.><End Sub>
<F0> Convert Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.8,0.4,2.8,0.8,7,0,8,0)
(t14,2,0,3,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,2,0.8,4,0.8,7,0,8,0)
(v6,5,65536,4,0.8,4,1.466667,7,0,8,0)
(v6,6,65536,4,1.466667,2,1.466667,7,0,8,0)
(v6,7,65536,2,1.466667,2,0.8,7,0,8,0))))
(T12,8,12,2.066667,0.893333,7,127,5,7,127,8,0,3,
<!Page, Width = 2 inches, Height = 0.441 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Use Unchecked_Conversion<HR>
to convert System.ADDRESS to SCREEN_BUFFER_POINTER
<End Text>)
(g9,9,8
(v6,9,0,2.8,0.4,2.8,0.2,7,0,8,0)
(g9,11,1025
(p8,11,0,5,7,0
(g9,11,0
(g9,11,0
(v6,11,0,2.745275,0.249648,2.8,0.4,7,0,8,0)
(v6,12,0,2.8,0.4,2.854723,0.249648,7,0,8,0)
(v6,13,0,2.854723,0.249648,2.8,0.281722,7,0,8,0)
(v6,14,0,2.8,0.281722,2.745275,0.249648,7,0,8,0))))
(v6,15,25167905,2.8,0.4,2.8,0.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.8.7.><End Sub>
<F0> Citation_to_Display Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 1.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,2,0.8,4.4,0.8,7,0,8,0)
(v6,5,65536,4.4,0.8,4.4,1.2,7,0,8,0)
(v6,6,65536,4.4,1.2,2,1.2,7,0,8,0)
(v6,7,65536,2,1.2,2,0.8,7,0,8,0))))
(T12,8,12,2.133333,0.893333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.997 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Convert CITATION_ID of the form<HR>
CnPnPn to n.n.n
<End Text>)
(g9,9,8
(v6,9,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,11,1025
(p8,11,0,5,7,0
(g9,11,0
(g9,11,0
(v6,11,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,12,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,13,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,14,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,15,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection,
Begin New Page = yes>
<|,41><"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.9.><End Sub>
<F0> Citation_Handler Package
<paragraph>
The Citation_Handler Package provides a series of methods for citation
manipulation. It is used by the Command_Dispatcher to perform many
of the major commands.
<subhead>
Mapping to Requirements
<paragraph>
The Citation_Handler implements the display, movement, and searching
capabilities in Sections 3.2.1, 3.2.3, and 3.2.4 of the SRS.
<subhead>
Design
<paragraph>
The Citation_Handler Package presents the following sets of methods,
types, data, and exceptions in its interface:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,0.8,0.866667,2.4,0.866667,7,0,8,0)
(v6,3,65536,2.4,0.866667,2.4,1.266667,7,0,8,0)
(v6,4,65536,2.4,1.266667,0.8,1.266667,7,0,8,0)
(v6,5,65536,0.8,1.266667,0.8,0.866667,7,0,8,0))))
(p8,7,8,5,7,127
(g9,7,0
(g9,7,0
(v6,7,65536,0.8,1.466667,2.6,1.466667,7,0,8,0)
(v6,8,65536,2.6,1.466667,2.6,1.866667,7,0,8,0)
(v6,9,65536,2.6,1.866667,0.8,1.866667,7,0,8,0)
(v6,10,65536,0.8,1.866667,0.8,1.466667,7,0,8,0))))
(t14,11,0,0.933333,1.133333,0,7,0,0,,wst:swiss10,View_Citation)
(t14,12,0,0.933333,1.733333,0,7,0,0,,wst:swiss10,Redisplay_Current_Screen)
(p8,14,8,5,7,127
(g9,14,0
(g9,14,0
(v6,14,65536,0.8,0.373333,5.6,0.373333,7,0,8,0)
(v6,15,65536,5.6,0.373333,5.6,4.64,7,0,8,0)
(v6,16,65536,5.6,4.64,0.8,4.64,7,0,8,0)
(v6,17,65536,0.8,4.64,0.8,0.373333,7,0,8,0))))
(t14,18,0,0.866667,0.64,0,7,0,0,,wst:swiss14,Citation_Handler)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.8,2.066667,2.4,2.066667,7,0,8,0)
(v6,21,65536,2.4,2.066667,2.4,2.466667,7,0,8,0)
(v6,22,65536,2.4,2.466667,0.8,2.466667,7,0,8,0)
(v6,23,65536,0.8,2.466667,0.8,2.066667,7,0,8,0))))
(t14,24,0,0.933333,2.333333,0,7,0,0,,wst:swiss10,Next_Screen)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,0.8,2.666667,2.4,2.666667,7,0,8,0)
(v6,27,65536,2.4,2.666667,2.4,3.066667,7,0,8,0)
(v6,28,65536,2.4,3.066667,0.8,3.066667,7,0,8,0)
(v6,29,65536,0.8,3.066667,0.8,2.666667,7,0,8,0))))
(t14,30,0,0.933333,2.933333,0,7,0,0,,wst:swiss10,Previous_Screen)
(p8,32,8,5,7,127
(g9,32,0
(g9,32,0
(v6,32,65536,0.8,3.333333,2.4,3.333333,7,0,8,0)
(v6,33,65536,2.4,3.333333,2.4,3.733333,7,0,8,0)
(v6,34,65536,2.4,3.733333,0.8,3.733333,7,0,8,0)
(v6,35,65536,0.8,3.733333,0.8,3.333333,7,0,8,0))))
(t14,36,0,0.933333,3.6,0,7,0,0,,wst:swiss10,Next_Citation)
(p8,38,8,5,7,127
(g9,38,0
(g9,38,0
(v6,38,65536,0.8,3.933333,2.4,3.933333,7,0,8,0)
(v6,39,65536,2.4,3.933333,2.4,4.333333,7,0,8,0)
(v6,40,65536,2.4,4.333333,0.8,4.333333,7,0,8,0)
(v6,41,65536,0.8,4.333333,0.8,3.933333,7,0,8,0))))
(t14,42,0,0.933333,4.2,0,7,0,0,,wst:swiss10,Previous_Citation)
(p8,44,8,5,7,127
(g9,44,0
(g9,44,0
(v6,44,65536,4,0.866667,5.6,0.866667,7,0,8,0)
(v6,45,65536,5.6,0.866667,5.6,1.266667,7,0,8,0)
(v6,46,65536,5.6,1.266667,4,1.266667,7,0,8,0)
(v6,47,65536,4,1.266667,4,0.866667,7,0,8,0))))
(t14,48,0,4.133333,1.133333,0,7,0,0,,wst:swiss10,Push)
(p8,50,8,5,7,127
(g9,50,0
(g9,50,0
(v6,50,65536,4,1.466667,5.6,1.466667,7,0,8,0)
(v6,51,65536,5.6,1.466667,5.6,1.866667,7,0,8,0)
(v6,52,65536,5.6,1.866667,4,1.866667,7,0,8,0)
(v6,53,65536,4,1.866667,4,1.466667,7,0,8,0))))
(t14,54,0,4.133333,1.733333,0,7,0,0,,wst:swiss10,Pop)
(p8,56,8,5,7,127
(g9,56,0
(g9,56,0
(v6,56,65536,3.666667,2.133333,5.6,2.133333,7,0,8,0)
(v6,57,65536,5.6,2.133333,5.6,2.533333,7,0,8,0)
(v6,58,65536,5.6,2.533333,3.666667,2.533333,7,0,8,0)
(v6,59,65536,3.666667,2.533333,3.666667,2.133333,7,0,8,0))))
(t14,60,0,3.8,2.4,0,7,0,0,,wst:swiss10,Search_for_First_Occurrence)
(p8,62,8,5,7,127
(g9,62,0
(g9,62,0
(v6,62,65536,3.666667,2.733333,5.6,2.733333,7,0,8,0)
(v6,63,65536,5.6,2.733333,5.6,3.133333,7,0,8,0)
(v6,64,65536,5.6,3.133333,3.666667,3.133333,7,0,8,0)
(v6,65,65536,3.666667,3.133333,3.666667,2.733333,7,0,8,0))))
(t14,66,0,3.8,3,0,7,0,0,,wst:swiss10,Search_for_Next_Occurrence)
(p8,68,8,5,7,127
(g9,68,0
(g9,68,0
(v6,68,65536,3.666667,3.333333,5.6,3.333333,7,0,8,0)
(v6,69,65536,5.6,3.333333,5.6,3.733333,7,0,8,0)
(v6,70,65536,5.6,3.733333,3.666667,3.733333,7,0,8,0)
(v6,71,65536,3.666667,3.733333,3.666667,3.333333,7,0,8,0))))
(t14,72,0,3.8,3.6,0,7,0,0,,wst:swiss10,Close_All_Open_Citations)
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
In this OID symbol, the rectangles represent subprograms.
<subhead,
Begin New Page = yes>
<|,42>CSC Specification
<code>
-- ***********************************************************************<HR>
-- ON-LINE Ada LANGUAGE REFERENCE MANUAL<HR>
-- by Richard Conn<HR>
with Citation_Definition;<HR>
package Citation_Handler is<HR>
-- Abstract state machine for selecting and working with a given citation<HR>
<HR>
procedure View_Citation<HR>
(New_Citation : in Citation_Definition.CITATION_ID);<HR>
-- Start viewing a new citation, displaying the first screen<HR>
<HR>
procedure Redisplay_Current_Screen;<HR>
-- Refresh current screen in current citation<HR>
<HR>
procedure Next_Screen;<HR>
-- Advance to next screen in current citation and display<HR>
<HR>
procedure Previous_Screen;<HR>
-- Back up to previous screen in current citation and display<HR>
<HR>
procedure Next_Citation;<HR>
-- Close current citation and view first screen of next citation<HR>
<HR>
procedure Previous_Citation;<HR>
-- Close current citation and view first screen of previous citation<HR>
<HR>
procedure Push (New_Citation : in Citation_Definition.CITATION_ID);<HR>
-- Save position in current citation and<HR>
-- start viewing a new citation, displaying the first screen<HR>
<HR>
procedure Pop;<HR>
-- Return to current position in last citation before last PUSH<HR>
<HR>
procedure Search_for_First_Occurrence (Item : in STRING);<HR>
-- Search for first occurrence of string in current citation<HR>
<HR>
procedure Search_for_Next_Occurrence (Item : in STRING);<HR>
-- Search for next occurrence of string in current citation<HR>
<HR>
procedure Close_All_Open_Citations;<HR>
-- Close all open citations<HR>
<HR>
end Citation_Handler;
<subhead,
Begin New Page = yes>
<|,43>Required Program Units
<paragraph>
The specification requires the following program units:
<code>
Citation_Definition
<paragraph>
The body requires the following program units:
<code>
Primitive_Citation_Handler<HR>
Screen_Display_Controller
<subhead>
Internal Global Code, Types, and Objects
<paragraph>
There are no items of global code, types, or objects within the body
of the Citation_Handler Package.
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.1.><End Sub>
<F0> View_Citation Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.8,0.4,2.8,0.8,7,0,8,0)
(t14,2,0,3,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.466667,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.84 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Open_New_Citation
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.4,0.8,4.4,0.8,7,0,8,0)
(v6,6,65536,4.4,0.8,4.4,1.2,7,0,8,0)
(v6,7,65536,4.4,1.2,1.4,1.2,7,0,8,0)
(v6,8,65536,1.4,1.2,1.4,0.8,7,0,8,0))))
(v6,9,0,2.8,1.2,2.8,1.6,7,0,8,0)
(T12,10,12,1.466667,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.867 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Load_Screen_Buffer
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.4,1.6,4.4,1.6,7,0,8,0)
(v6,13,65536,4.4,1.6,4.4,2,7,0,8,0)
(v6,14,65536,4.4,2,1.4,2,7,0,8,0)
(v6,15,65536,1.4,2,1.4,1.6,7,0,8,0))))
(v6,16,0,2.8,2,2.8,2.4,7,0,8,0)
(T12,17,12,2.066667,2.493333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,2,2.4,3.8,2.4,7,0,8,0)
(v6,20,65536,3.8,2.4,3.8,2.8,7,0,8,0)
(v6,21,65536,3.8,2.8,2,2.8,7,0,8,0)
(v6,22,65536,2,2.8,2,2.4,7,0,8,0))))
(g9,23,8
(v6,23,0,2.8,0.4,2.8,0.2,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,2.745275,0.249648,2.8,0.4,7,0,8,0)
(v6,26,0,2.8,0.4,2.854723,0.249648,7,0,8,0)
(v6,27,0,2.854723,0.249648,2.8,0.281722,7,0,8,0)
(v6,28,0,2.8,0.281722,2.745275,0.249648,7,0,8,0))))
(v6,29,25167905,2.8,0.4,2.8,0.4,7,127,8,0)))
(g9,30,8
(v6,30,0,2.8,1.6,2.8,1.4,7,0,8,0)
(g9,32,1025
(p8,32,0,5,7,0
(g9,32,0
(g9,32,0
(v6,32,0,2.745275,1.449648,2.8,1.6,7,0,8,0)
(v6,33,0,2.8,1.6,2.854723,1.449648,7,0,8,0)
(v6,34,0,2.854723,1.449648,2.8,1.481722,7,0,8,0)
(v6,35,0,2.8,1.481722,2.745275,1.449648,7,0,8,0))))
(v6,36,25167905,2.8,1.6,2.8,1.6,7,127,8,0)))
(g9,37,8
(v6,37,0,2.8,2.4,2.8,2.2,7,0,8,0)
(g9,39,1025
(p8,39,0,5,7,0
(g9,39,0
(g9,39,0
(v6,39,0,2.745275,2.249648,2.8,2.4,7,0,8,0)
(v6,40,0,2.8,2.4,2.854723,2.249648,7,0,8,0)
(v6,41,0,2.854723,2.249648,2.8,2.281722,7,0,8,0)
(v6,42,0,2.8,2.281722,2.745275,2.249648,7,0,8,0))))
(v6,43,25167905,2.8,2.4,2.8,2.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.2.><End Sub>
<F0> Redisplay_Current_Screen Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 1.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.133333,0.4,3.133333,0.8,7,0,8,0)
(t14,2,0,3.333333,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.066667,0.96,7,127,5,7,127,8,0,7,
<!Page, Width = 2.32 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.Show_Text
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.4,0.8,7,0,8,0)
(v6,6,65536,4.4,0.8,4.4,1.2,7,0,8,0)
(v6,7,65536,4.4,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(g9,9,8
(v6,9,0,3.133333,0.4,3.133333,0.2,7,0,8,0)
(g9,11,1025
(p8,11,0,5,7,0
(g9,11,0
(g9,11,0
(v6,11,0,3.078608,0.249648,3.133333,0.4,7,0,8,0)
(v6,12,0,3.133333,0.4,3.188057,0.249648,7,0,8,0)
(v6,13,0,3.188057,0.249648,3.133333,0.281722,7,0,8,0)
(v6,14,0,3.133333,0.281722,3.078608,0.249648,7,0,8,0))))
(v6,15,25167905,3.133333,0.4,3.133333,0.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,44><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.3.><End Sub>
<F0> Next_Screen Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.133333,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.40 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Next_Screen
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.6,0.8,7,0,8,0)
(v6,6,65536,4.6,0.8,4.6,1.2,7,0,8,0)
(v6,7,65536,4.6,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.167648,1.567648,3.733333,2.133333,7,0,8,0)
(v6,12,65536,3.733333,2.133333,3.167648,2.699019,7,0,8,0)
(v6,13,65536,3.167648,2.699019,2.601963,2.133333,7,0,8,0)
(v6,14,65536,2.601963,2.133333,3.167648,1.567648,7,0,8,0))))
(v6,15,0,4.4,2.133333,3.733333,2.133333,7,0,8,0)
(v6,16,0,1.2,2.133333,2.601963,2.133333,7,0,8,0)
(T12,17,12,4.533333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(T12,18,12,0.133333,2.466667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.<HR>
Show_Error (CANNOT_ADVANCE)
<End Text>)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.093333,2.4,2.333333,2.4,7,0,8,0)
(v6,21,65536,2.333333,2.4,2.333333,2.8,7,0,8,0)
(v6,22,65536,2.333333,2.8,0.093333,2.8,7,0,8,0)
(v6,23,65536,0.093333,2.8,0.093333,2.4,7,0,8,0))))
(v6,24,0,1.2,2.133333,1.2,2.4,7,0,8,0)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,4.4,1.933333,6.2,1.933333,7,0,8,0)
(v6,27,65536,6.2,1.933333,6.2,2.333333,7,0,8,0)
(v6,28,65536,6.2,2.333333,4.4,2.333333,7,0,8,0)
(v6,29,65536,4.4,2.333333,4.4,1.933333,7,0,8,0))))
(T12,30,12,3.066667,2.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK?
<End Text>)
(T12,31,12,3.866667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,32,12,2.266667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,33,8
(v6,33,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,35,1025
(p8,35,0,5,7,0
(g9,35,0
(g9,35,0
(v6,35,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,36,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,37,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,38,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,39,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,40,8
(v6,40,0,1.2,2.4,1.2,2.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.145275,2.249648,1.2,2.4,7,0,8,0)
(v6,43,0,1.2,2.4,1.254723,2.249648,7,0,8,0)
(v6,44,0,1.254723,2.249648,1.2,2.281722,7,0,8,0)
(v6,45,0,1.2,2.281722,1.145275,2.249648,7,0,8,0))))
(v6,46,25167905,1.2,2.4,1.2,2.4,7,127,8,0)))
(g9,47,8
(v6,47,0,4.4,2.133333,4.2,2.133333,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,4.249648,2.188058,4.4,2.133333,7,0,8,0)
(v6,50,0,4.4,2.133333,4.249648,2.07861,7,0,8,0)
(v6,51,0,4.249648,2.07861,4.281722,2.133333,7,0,8,0)
(v6,52,0,4.281722,2.133333,4.249648,2.188058,7,0,8,0))))
(v6,53,25167905,4.4,2.133333,4.4,2.133333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.4.><End Sub>
<F0> Previous_Screen Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.133333,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.64 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Previous_Screen
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.8,0.8,7,0,8,0)
(v6,6,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,7,65536,4.8,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.167648,1.567648,3.733333,2.133333,7,0,8,0)
(v6,12,65536,3.733333,2.133333,3.167648,2.699019,7,0,8,0)
(v6,13,65536,3.167648,2.699019,2.601963,2.133333,7,0,8,0)
(v6,14,65536,2.601963,2.133333,3.167648,1.567648,7,0,8,0))))
(v6,15,0,4.4,2.133333,3.733333,2.133333,7,0,8,0)
(v6,16,0,1.2,2.133333,2.601963,2.133333,7,0,8,0)
(T12,17,12,4.533333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(T12,18,12,0.133333,2.466667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.<HR>
Show_Error (CANNOT_BACK)
<End Text>)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.093333,2.4,2.333333,2.4,7,0,8,0)
(v6,21,65536,2.333333,2.4,2.333333,2.8,7,0,8,0)
(v6,22,65536,2.333333,2.8,0.093333,2.8,7,0,8,0)
(v6,23,65536,0.093333,2.8,0.093333,2.4,7,0,8,0))))
(v6,24,0,1.2,2.133333,1.2,2.4,7,0,8,0)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,4.4,1.933333,6.2,1.933333,7,0,8,0)
(v6,27,65536,6.2,1.933333,6.2,2.333333,7,0,8,0)
(v6,28,65536,6.2,2.333333,4.4,2.333333,7,0,8,0)
(v6,29,65536,4.4,2.333333,4.4,1.933333,7,0,8,0))))
(T12,30,12,3.066667,2.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK?
<End Text>)
(T12,31,12,3.866667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,32,12,2.266667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,33,8
(v6,33,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,35,1025
(p8,35,0,5,7,0
(g9,35,0
(g9,35,0
(v6,35,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,36,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,37,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,38,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,39,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,40,8
(v6,40,0,1.2,2.4,1.2,2.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.145275,2.249648,1.2,2.4,7,0,8,0)
(v6,43,0,1.2,2.4,1.254723,2.249648,7,0,8,0)
(v6,44,0,1.254723,2.249648,1.2,2.281722,7,0,8,0)
(v6,45,0,1.2,2.281722,1.145275,2.249648,7,0,8,0))))
(v6,46,25167905,1.2,2.4,1.2,2.4,7,127,8,0)))
(g9,47,8
(v6,47,0,4.4,2.133333,4.2,2.133333,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,4.249648,2.188058,4.4,2.133333,7,0,8,0)
(v6,50,0,4.4,2.133333,4.249648,2.07861,7,0,8,0)
(v6,51,0,4.249648,2.07861,4.281722,2.133333,7,0,8,0)
(v6,52,0,4.281722,2.133333,4.249648,2.188058,7,0,8,0))))
(v6,53,25167905,4.4,2.133333,4.4,2.133333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,45><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.5.><End Sub>
<F0> Next_Citation Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.133333,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.427 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Next_Citation
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.6,0.8,7,0,8,0)
(v6,6,65536,4.6,0.8,4.6,1.2,7,0,8,0)
(v6,7,65536,4.6,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.167648,1.567648,3.733333,2.133333,7,0,8,0)
(v6,12,65536,3.733333,2.133333,3.167648,2.699019,7,0,8,0)
(v6,13,65536,3.167648,2.699019,2.601963,2.133333,7,0,8,0)
(v6,14,65536,2.601963,2.133333,3.167648,1.567648,7,0,8,0))))
(v6,15,0,4.4,2.133333,3.733333,2.133333,7,0,8,0)
(v6,16,0,1.2,2.133333,2.601963,2.133333,7,0,8,0)
(T12,17,12,4.533333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(T12,18,12,0.133333,2.466667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.<HR>
Show_Error (CANNOT_ADVANCE)
<End Text>)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.093333,2.4,2.333333,2.4,7,0,8,0)
(v6,21,65536,2.333333,2.4,2.333333,2.8,7,0,8,0)
(v6,22,65536,2.333333,2.8,0.093333,2.8,7,0,8,0)
(v6,23,65536,0.093333,2.8,0.093333,2.4,7,0,8,0))))
(v6,24,0,1.2,2.133333,1.2,2.4,7,0,8,0)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,4.4,1.933333,6.2,1.933333,7,0,8,0)
(v6,27,65536,6.2,1.933333,6.2,2.333333,7,0,8,0)
(v6,28,65536,6.2,2.333333,4.4,2.333333,7,0,8,0)
(v6,29,65536,4.4,2.333333,4.4,1.933333,7,0,8,0))))
(T12,30,12,3.066667,2.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK?
<End Text>)
(T12,31,12,3.866667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,32,12,2.266667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,33,8
(v6,33,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,35,1025
(p8,35,0,5,7,0
(g9,35,0
(g9,35,0
(v6,35,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,36,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,37,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,38,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,39,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,40,8
(v6,40,0,1.2,2.4,1.2,2.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.145275,2.249648,1.2,2.4,7,0,8,0)
(v6,43,0,1.2,2.4,1.254723,2.249648,7,0,8,0)
(v6,44,0,1.254723,2.249648,1.2,2.281722,7,0,8,0)
(v6,45,0,1.2,2.281722,1.145275,2.249648,7,0,8,0))))
(v6,46,25167905,1.2,2.4,1.2,2.4,7,127,8,0)))
(g9,47,8
(v6,47,0,4.4,2.133333,4.2,2.133333,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,4.249648,2.188058,4.4,2.133333,7,0,8,0)
(v6,50,0,4.4,2.133333,4.249648,2.07861,7,0,8,0)
(v6,51,0,4.249648,2.07861,4.281722,2.133333,7,0,8,0)
(v6,52,0,4.281722,2.133333,4.249648,2.188058,7,0,8,0))))
(v6,53,25167905,4.4,2.133333,4.4,2.133333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.6.><End Sub>
<F0> Previous_Citation Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.066667,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.667 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Previous_Citation
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.8,0.8,7,0,8,0)
(v6,6,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,7,65536,4.8,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.167648,1.567648,3.733333,2.133333,7,0,8,0)
(v6,12,65536,3.733333,2.133333,3.167648,2.699019,7,0,8,0)
(v6,13,65536,3.167648,2.699019,2.601963,2.133333,7,0,8,0)
(v6,14,65536,2.601963,2.133333,3.167648,1.567648,7,0,8,0))))
(v6,15,0,4.4,2.133333,3.733333,2.133333,7,0,8,0)
(v6,16,0,1.2,2.133333,2.601963,2.133333,7,0,8,0)
(T12,17,12,4.533333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(T12,18,12,0.133333,2.466667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.<HR>
Show_Error (CANNOT_BACK)
<End Text>)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.093333,2.4,2.333333,2.4,7,0,8,0)
(v6,21,65536,2.333333,2.4,2.333333,2.8,7,0,8,0)
(v6,22,65536,2.333333,2.8,0.093333,2.8,7,0,8,0)
(v6,23,65536,0.093333,2.8,0.093333,2.4,7,0,8,0))))
(v6,24,0,1.2,2.133333,1.2,2.4,7,0,8,0)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,4.4,1.933333,6.2,1.933333,7,0,8,0)
(v6,27,65536,6.2,1.933333,6.2,2.333333,7,0,8,0)
(v6,28,65536,6.2,2.333333,4.4,2.333333,7,0,8,0)
(v6,29,65536,4.4,2.333333,4.4,1.933333,7,0,8,0))))
(T12,30,12,3.066667,2.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK?
<End Text>)
(T12,31,12,3.866667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,32,12,2.266667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,33,8
(v6,33,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,35,1025
(p8,35,0,5,7,0
(g9,35,0
(g9,35,0
(v6,35,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,36,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,37,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,38,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,39,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,40,8
(v6,40,0,1.2,2.4,1.2,2.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.145275,2.249648,1.2,2.4,7,0,8,0)
(v6,43,0,1.2,2.4,1.254723,2.249648,7,0,8,0)
(v6,44,0,1.254723,2.249648,1.2,2.281722,7,0,8,0)
(v6,45,0,1.2,2.281722,1.145275,2.249648,7,0,8,0))))
(v6,46,25167905,1.2,2.4,1.2,2.4,7,127,8,0)))
(g9,47,8
(v6,47,0,4.4,2.133333,4.2,2.133333,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,4.249648,2.188058,4.4,2.133333,7,0,8,0)
(v6,50,0,4.4,2.133333,4.249648,2.07861,7,0,8,0)
(v6,51,0,4.249648,2.07861,4.281722,2.133333,7,0,8,0)
(v6,52,0,4.281722,2.133333,4.249648,2.188058,7,0,8,0))))
(v6,53,25167905,4.4,2.133333,4.4,2.133333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,46><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.7.><End Sub>
<F0> Push Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.4,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.92 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Push
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.8,0.8,7,0,8,0)
(v6,6,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,7,65536,4.8,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.167648,1.567648,3.733333,2.133333,7,0,8,0)
(v6,12,65536,3.733333,2.133333,3.167648,2.699019,7,0,8,0)
(v6,13,65536,3.167648,2.699019,2.601963,2.133333,7,0,8,0)
(v6,14,65536,2.601963,2.133333,3.167648,1.567648,7,0,8,0))))
(v6,15,0,5.2,2.133333,3.733333,2.133333,7,0,8,0)
(v6,16,0,1.2,2.133333,2.601963,2.133333,7,0,8,0)
(T12,17,12,0.133333,2.466667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.<HR>
Show_Error (STACK_FULL)
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,0.093333,2.4,2.333333,2.4,7,0,8,0)
(v6,20,65536,2.333333,2.4,2.333333,2.8,7,0,8,0)
(v6,21,65536,2.333333,2.8,0.093333,2.8,7,0,8,0)
(v6,22,65536,0.093333,2.8,0.093333,2.4,7,0,8,0))))
(v6,23,0,1.2,2.133333,1.2,2.4,7,0,8,0)
(T12,24,12,3.066667,2.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK?
<End Text>)
(T12,25,12,3.866667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,26,12,2.266667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,27,0,5.2,2.133333,5.2,2.8,7,0,8,0)
(T12,28,12,4.2,2.893333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.80 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.<HR>
Open_New_Citation
<End Text>)
(p8,30,8,5,7,127
(g9,30,0
(g9,30,0
(v6,30,65536,4.133333,2.8,6.2,2.8,7,0,8,0)
(v6,31,65536,6.2,2.8,6.2,3.2,7,0,8,0)
(v6,32,65536,6.2,3.2,4.133333,3.2,7,0,8,0)
(v6,33,65536,4.133333,3.2,4.133333,2.8,7,0,8,0))))
(v6,34,0,5.2,3.173333,5.2,3.6,7,0,8,0)
(T12,35,12,4.4,3.626667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.677 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler. <HR>
Load_Screen_Buffer
<End Text>)
(p8,37,8,5,7,127
(g9,37,0
(g9,37,0
(v6,37,65536,4.266667,3.6,6.133333,3.6,7,0,8,0)
(v6,38,65536,6.133333,3.6,6.133333,4,7,0,8,0)
(v6,39,65536,6.133333,4,4.266667,4,7,0,8,0)
(v6,40,65536,4.266667,4,4.266667,3.6,7,0,8,0))))
(v6,41,0,5.2,4,5.2,4.4,7,0,8,0)
(T12,42,12,4.466667,4.493333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(p8,44,8,5,7,127
(g9,44,0
(g9,44,0
(v6,44,65536,4.333333,4.4,6.133333,4.4,7,0,8,0)
(v6,45,65536,6.133333,4.4,6.133333,4.8,7,0,8,0)
(v6,46,65536,6.133333,4.8,4.333333,4.8,7,0,8,0)
(v6,47,65536,4.333333,4.8,4.333333,4.4,7,0,8,0))))
(g9,48,8
(v6,48,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,50,1025
(p8,50,0,5,7,0
(g9,50,0
(g9,50,0
(v6,50,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,51,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,52,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,53,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,54,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,55,8
(v6,55,0,1.2,2.4,1.2,2.2,7,0,8,0)
(g9,57,1025
(p8,57,0,5,7,0
(g9,57,0
(g9,57,0
(v6,57,0,1.145275,2.249648,1.2,2.4,7,0,8,0)
(v6,58,0,1.2,2.4,1.254723,2.249648,7,0,8,0)
(v6,59,0,1.254723,2.249648,1.2,2.281722,7,0,8,0)
(v6,60,0,1.2,2.281722,1.145275,2.249648,7,0,8,0))))
(v6,61,25167905,1.2,2.4,1.2,2.4,7,127,8,0)))
(g9,62,8
(v6,62,0,5.2,2.8,5.2,2.6,7,0,8,0)
(g9,64,1025
(p8,64,0,5,7,0
(g9,64,0
(g9,64,0
(v6,64,0,5.145275,2.649648,5.2,2.8,7,0,8,0)
(v6,65,0,5.2,2.8,5.254723,2.649648,7,0,8,0)
(v6,66,0,5.254723,2.649648,5.2,2.681722,7,0,8,0)
(v6,67,0,5.2,2.681722,5.145275,2.649648,7,0,8,0))))
(v6,68,25167905,5.2,2.8,5.2,2.8,7,127,8,0)))
(g9,69,8
(v6,69,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,71,1025
(p8,71,0,5,7,0
(g9,71,0
(g9,71,0
(v6,71,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,72,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,73,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,74,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,75,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(g9,76,8
(v6,76,0,5.2,3.6,5.2,3.4,7,0,8,0)
(g9,78,1025
(p8,78,0,5,7,0
(g9,78,0
(g9,78,0
(v6,78,0,5.145275,3.449648,5.2,3.6,7,0,8,0)
(v6,79,0,5.2,3.6,5.254723,3.449648,7,0,8,0)
(v6,80,0,5.254723,3.449648,5.2,3.481722,7,0,8,0)
(v6,81,0,5.2,3.481722,5.145275,3.449648,7,0,8,0))))
(v6,82,25167905,5.2,3.6,5.2,3.6,7,127,8,0)))
(g9,83,8
(v6,83,0,5.2,4.4,5.2,4.2,7,0,8,0)
(g9,85,1025
(p8,85,0,5,7,0
(g9,85,0
(g9,85,0
(v6,85,0,5.145275,4.249648,5.2,4.4,7,0,8,0)
(v6,86,0,5.2,4.4,5.254723,4.249648,7,0,8,0)
(v6,87,0,5.254723,4.249648,5.2,4.281722,7,0,8,0)
(v6,88,0,5.2,4.281722,5.145275,4.249648,7,0,8,0))))
(v6,89,25167905,5.2,4.4,5.2,4.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,47><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.8.><End Sub>
<F0> Pop Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4.25 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.4,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.853 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Pop
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.8,0.8,7,0,8,0)
(v6,6,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,7,65536,4.8,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(p8,11,8,5,7,127
(g9,11,0
(g9,11,0
(v6,11,65536,3.167648,1.567648,3.733333,2.133333,7,0,8,0)
(v6,12,65536,3.733333,2.133333,3.167648,2.699019,7,0,8,0)
(v6,13,65536,3.167648,2.699019,2.601963,2.133333,7,0,8,0)
(v6,14,65536,2.601963,2.133333,3.167648,1.567648,7,0,8,0))))
(v6,15,0,5.2,2.133333,3.733333,2.133333,7,0,8,0)
(v6,16,0,1.2,2.133333,2.601963,2.133333,7,0,8,0)
(T12,17,12,0.133333,2.466667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.<HR>
Show_Error (STACK_FULL)
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,0.093333,2.4,2.333333,2.4,7,0,8,0)
(v6,20,65536,2.333333,2.4,2.333333,2.8,7,0,8,0)
(v6,21,65536,2.333333,2.8,0.093333,2.8,7,0,8,0)
(v6,22,65536,0.093333,2.8,0.093333,2.4,7,0,8,0))))
(v6,23,0,1.2,2.133333,1.2,2.4,7,0,8,0)
(T12,24,12,3.066667,2.026667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK?
<End Text>)
(T12,25,12,3.866667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,26,12,2.266667,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,27,0,5.2,2.133333,5.2,2.8,7,0,8,0)
(T12,28,12,4.4,2.826667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.677 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler. <HR>
Load_Screen_Buffer
<End Text>)
(p8,30,8,5,7,127
(g9,30,0
(g9,30,0
(v6,30,65536,4.266667,2.8,6.133333,2.8,7,0,8,0)
(v6,31,65536,6.133333,2.8,6.133333,3.2,7,0,8,0)
(v6,32,65536,6.133333,3.2,4.266667,3.2,7,0,8,0)
(v6,33,65536,4.266667,3.2,4.266667,2.8,7,0,8,0))))
(v6,34,0,5.2,3.2,5.2,3.6,7,0,8,0)
(T12,35,12,4.466667,3.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.627 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Screen
<End Text>)
(p8,37,8,5,7,127
(g9,37,0
(g9,37,0
(v6,37,65536,4.333333,3.6,6.133333,3.6,7,0,8,0)
(v6,38,65536,6.133333,3.6,6.133333,4,7,0,8,0)
(v6,39,65536,6.133333,4,4.333333,4,7,0,8,0)
(v6,40,65536,4.333333,4,4.333333,3.6,7,0,8,0))))
(g9,41,8
(v6,41,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,44,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,45,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,46,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,47,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,48,8
(v6,48,0,1.2,2.4,1.2,2.2,7,0,8,0)
(g9,50,1025
(p8,50,0,5,7,0
(g9,50,0
(g9,50,0
(v6,50,0,1.145275,2.249648,1.2,2.4,7,0,8,0)
(v6,51,0,1.2,2.4,1.254723,2.249648,7,0,8,0)
(v6,52,0,1.254723,2.249648,1.2,2.281722,7,0,8,0)
(v6,53,0,1.2,2.281722,1.145275,2.249648,7,0,8,0))))
(v6,54,25167905,1.2,2.4,1.2,2.4,7,127,8,0)))
(g9,55,8
(v6,55,0,5.2,2.8,5.2,2.6,7,0,8,0)
(g9,57,1025
(p8,57,0,5,7,0
(g9,57,0
(g9,57,0
(v6,57,0,5.145275,2.649648,5.2,2.8,7,0,8,0)
(v6,58,0,5.2,2.8,5.254723,2.649648,7,0,8,0)
(v6,59,0,5.254723,2.649648,5.2,2.681722,7,0,8,0)
(v6,60,0,5.2,2.681722,5.145275,2.649648,7,0,8,0))))
(v6,61,25167905,5.2,2.8,5.2,2.8,7,127,8,0)))
(g9,62,8
(v6,62,0,5.2,3.6,5.2,3.4,7,0,8,0)
(g9,64,1025
(p8,64,0,5,7,0
(g9,64,0
(g9,64,0
(v6,64,0,5.145275,3.449648,5.2,3.6,7,0,8,0)
(v6,65,0,5.2,3.6,5.254723,3.449648,7,0,8,0)
(v6,66,0,5.254723,3.449648,5.2,3.481722,7,0,8,0)
(v6,67,0,5.2,3.481722,5.145275,3.449648,7,0,8,0))))
(v6,68,25167905,5.2,3.6,5.2,3.6,7,127,8,0)))
(g9,69,8
(v6,69,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,71,1025
(p8,71,0,5,7,0
(g9,71,0
(g9,71,0
(v6,71,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,72,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,73,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,74,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,75,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,48><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.9.><End Sub>
<F0> Search_for_First_Occurrence Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.8,0.4,2.8,0.8,7,0,8,0)
(t14,2,0,3,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.4,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 3.03 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Result := Primitive_Citation_Handler.Search_First
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.333333,0.8,4.466667,0.8,7,0,8,0)
(v6,6,65536,4.466667,0.8,4.466667,1.2,7,0,8,0)
(v6,7,65536,4.466667,1.2,1.333333,1.2,7,0,8,0)
(v6,8,65536,1.333333,1.2,1.333333,0.8,7,0,8,0))))
(v6,9,0,2.8,1.2,2.8,1.6,7,0,8,0)
(T12,10,12,2,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.653 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Citation
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.933333,1.6,3.733333,1.6,7,0,8,0)
(v6,13,65536,3.733333,1.6,3.733333,2,7,0,8,0)
(v6,14,65536,3.733333,2,1.933333,2,7,0,8,0)
(v6,15,65536,1.933333,2,1.933333,1.6,7,0,8,0))))
(v6,16,0,2.8,2,2.8,2.4,7,0,8,0)
(p8,18,8,5,7,127
(g9,18,0
(g9,18,0
(v6,18,65536,2.767648,2.367648,3.333333,2.933333,7,0,8,0)
(v6,19,65536,3.333333,2.933333,2.767648,3.499019,7,0,8,0)
(v6,20,65536,2.767648,3.499019,2.201963,2.933333,7,0,8,0)
(v6,21,65536,2.201963,2.933333,2.767648,2.367648,7,0,8,0))))
(T12,22,12,2.266667,2.626667,7,127,5,7,127,8,0,7,
<!Page, Width = 1.053 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Result.Is_Found?
<End Text>)
(v6,23,0,1.6,2.933333,2.201963,2.933333,7,0,8,0)
(v6,24,0,4,2.933333,3.333333,2.933333,7,0,8,0)
(v6,25,0,1.6,2.933333,1.6,3.6,7,0,8,0)
(T12,26,12,4.133333,2.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.Mark_Line
<End Text>)
(p8,28,8,5,7,127
(g9,28,0
(g9,28,0
(v6,28,65536,4,2.733333,6.4,2.733333,7,0,8,0)
(v6,29,65536,6.4,2.733333,6.4,3.133333,7,0,8,0)
(v6,30,65536,6.4,3.133333,4,3.133333,7,0,8,0)
(v6,31,65536,4,3.133333,4,2.733333,7,0,8,0))))
(T12,32,12,0.346667,3.653333,7,127,5,7,127,8,0,3,
<!Page, Width = 2.387 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84@Lnl>
Screen_Display_Controller.Show_Error <HR>
(SEARCH_STRING)
<End Text>)
(p8,34,8,5,7,127
(g9,34,0
(g9,34,0
(v6,34,65536,0.266667,3.6,2.733333,3.6,7,0,8,0)
(v6,35,65536,2.733333,3.6,2.733333,4,7,0,8,0)
(v6,36,65536,2.733333,4,0.266667,4,7,0,8,0)
(v6,37,65536,0.266667,4,0.266667,3.6,7,0,8,0))))
(T12,38,12,3.466667,2.76,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,39,12,1.733333,2.76,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,40,8
(v6,40,0,2.8,0.4,2.8,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,2.745275,0.249648,2.8,0.4,7,0,8,0)
(v6,43,0,2.8,0.4,2.854723,0.249648,7,0,8,0)
(v6,44,0,2.854723,0.249648,2.8,0.281722,7,0,8,0)
(v6,45,0,2.8,0.281722,2.745275,0.249648,7,0,8,0))))
(v6,46,25167905,2.8,0.4,2.8,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,2.8,1.6,2.8,1.4,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,2.745275,1.449648,2.8,1.6,7,0,8,0)
(v6,50,0,2.8,1.6,2.854723,1.449648,7,0,8,0)
(v6,51,0,2.854723,1.449648,2.8,1.481722,7,0,8,0)
(v6,52,0,2.8,1.481722,2.745275,1.449648,7,0,8,0))))
(v6,53,25167905,2.8,1.6,2.8,1.6,7,127,8,0)))
(g9,54,8
(v6,54,0,2.8,2.4,2.8,2.2,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,2.745275,2.249648,2.8,2.4,7,0,8,0)
(v6,57,0,2.8,2.4,2.854723,2.249648,7,0,8,0)
(v6,58,0,2.854723,2.249648,2.8,2.281722,7,0,8,0)
(v6,59,0,2.8,2.281722,2.745275,2.249648,7,0,8,0))))
(v6,60,25167905,2.8,2.4,2.8,2.4,7,127,8,0)))
(g9,61,8
(v6,61,0,1.6,3.6,1.6,3.4,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,1.545275,3.449648,1.6,3.6,7,0,8,0)
(v6,64,0,1.6,3.6,1.654723,3.449648,7,0,8,0)
(v6,65,0,1.654723,3.449648,1.6,3.481722,7,0,8,0)
(v6,66,0,1.6,3.481722,1.545275,3.449648,7,0,8,0))))
(v6,67,25167905,1.6,3.6,1.6,3.6,7,127,8,0)))
(g9,68,8
(v6,68,0,4,2.933333,3.8,2.933333,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,3.849648,2.988057,4,2.933333,7,0,8,0)
(v6,71,0,4,2.933333,3.849648,2.878609,7,0,8,0)
(v6,72,0,3.849648,2.878609,3.881722,2.933333,7,0,8,0)
(v6,73,0,3.881722,2.933333,3.849648,2.988057,7,0,8,0))))
(v6,74,25167905,4,2.933333,4,2.933333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,49><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.10.><End Sub>
<F0> Search_for_Next_Occurrence Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.8,0.4,2.8,0.8,7,0,8,0)
(t14,2,0,3,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.4,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 3.05 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Result := Primitive_Citation_Handler.Search_Next
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.333333,0.8,4.466667,0.8,7,0,8,0)
(v6,6,65536,4.466667,0.8,4.466667,1.2,7,0,8,0)
(v6,7,65536,4.466667,1.2,1.333333,1.2,7,0,8,0)
(v6,8,65536,1.333333,1.2,1.333333,0.8,7,0,8,0))))
(v6,9,0,2.8,1.2,2.8,1.6,7,0,8,0)
(T12,10,12,2,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.653 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Redisplay_Current_Citation
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.933333,1.6,3.733333,1.6,7,0,8,0)
(v6,13,65536,3.733333,1.6,3.733333,2,7,0,8,0)
(v6,14,65536,3.733333,2,1.933333,2,7,0,8,0)
(v6,15,65536,1.933333,2,1.933333,1.6,7,0,8,0))))
(v6,16,0,2.8,2,2.8,2.4,7,0,8,0)
(p8,18,8,5,7,127
(g9,18,0
(g9,18,0
(v6,18,65536,2.767648,2.367648,3.333333,2.933333,7,0,8,0)
(v6,19,65536,3.333333,2.933333,2.767648,3.499019,7,0,8,0)
(v6,20,65536,2.767648,3.499019,2.201963,2.933333,7,0,8,0)
(v6,21,65536,2.201963,2.933333,2.767648,2.367648,7,0,8,0))))
(T12,22,12,2.266667,2.626667,7,127,5,7,127,8,0,7,
<!Page, Width = 1.053 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Result.Is_Found?
<End Text>)
(v6,23,0,1.6,2.933333,2.201963,2.933333,7,0,8,0)
(v6,24,0,4,2.933333,3.333333,2.933333,7,0,8,0)
(v6,25,0,1.6,2.933333,1.6,3.6,7,0,8,0)
(T12,26,12,4.133333,2.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.253 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.Mark_Line
<End Text>)
(p8,28,8,5,7,127
(g9,28,0
(g9,28,0
(v6,28,65536,4,2.733333,6.4,2.733333,7,0,8,0)
(v6,29,65536,6.4,2.733333,6.4,3.133333,7,0,8,0)
(v6,30,65536,6.4,3.133333,4,3.133333,7,0,8,0)
(v6,31,65536,4,3.133333,4,2.733333,7,0,8,0))))
(T12,32,12,0.346667,3.653333,7,127,5,7,127,8,0,3,
<!Page, Width = 2.387 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84@Lnl>
Screen_Display_Controller.Show_Error <HR>
(SEARCH_STRING)
<End Text>)
(p8,34,8,5,7,127
(g9,34,0
(g9,34,0
(v6,34,65536,0.266667,3.6,2.733333,3.6,7,0,8,0)
(v6,35,65536,2.733333,3.6,2.733333,4,7,0,8,0)
(v6,36,65536,2.733333,4,0.266667,4,7,0,8,0)
(v6,37,65536,0.266667,4,0.266667,3.6,7,0,8,0))))
(T12,38,12,3.466667,2.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,39,12,1.666667,2.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,40,8
(v6,40,0,2.8,0.4,2.8,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,2.745275,0.249648,2.8,0.4,7,0,8,0)
(v6,43,0,2.8,0.4,2.854723,0.249648,7,0,8,0)
(v6,44,0,2.854723,0.249648,2.8,0.281722,7,0,8,0)
(v6,45,0,2.8,0.281722,2.745275,0.249648,7,0,8,0))))
(v6,46,25167905,2.8,0.4,2.8,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,2.8,1.6,2.8,1.4,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,2.745275,1.449648,2.8,1.6,7,0,8,0)
(v6,50,0,2.8,1.6,2.854723,1.449648,7,0,8,0)
(v6,51,0,2.854723,1.449648,2.8,1.481722,7,0,8,0)
(v6,52,0,2.8,1.481722,2.745275,1.449648,7,0,8,0))))
(v6,53,25167905,2.8,1.6,2.8,1.6,7,127,8,0)))
(g9,54,8
(v6,54,0,2.8,2.4,2.8,2.2,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,2.745275,2.249648,2.8,2.4,7,0,8,0)
(v6,57,0,2.8,2.4,2.854723,2.249648,7,0,8,0)
(v6,58,0,2.854723,2.249648,2.8,2.281722,7,0,8,0)
(v6,59,0,2.8,2.281722,2.745275,2.249648,7,0,8,0))))
(v6,60,25167905,2.8,2.4,2.8,2.4,7,127,8,0)))
(g9,61,8
(v6,61,0,1.6,3.6,1.6,3.4,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,1.545275,3.449648,1.6,3.6,7,0,8,0)
(v6,64,0,1.6,3.6,1.654723,3.449648,7,0,8,0)
(v6,65,0,1.654723,3.449648,1.6,3.481722,7,0,8,0)
(v6,66,0,1.6,3.481722,1.545275,3.449648,7,0,8,0))))
(v6,67,25167905,1.6,3.6,1.6,3.6,7,127,8,0)))
(g9,68,8
(v6,68,0,4,2.933333,3.8,2.933333,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,3.849648,2.988057,4,2.933333,7,0,8,0)
(v6,71,0,4,2.933333,3.849648,2.878609,7,0,8,0)
(v6,72,0,3.849648,2.878609,3.881722,2.933333,7,0,8,0)
(v6,73,0,3.881722,2.933333,3.849648,2.988057,7,0,8,0))))
(v6,74,25167905,4,2.933333,4,2.933333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.9.11.><End Sub>
<F0> Close_All_Open_Citations Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 1.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.066667,0.4,3.066667,0.8,7,0,8,0)
(t14,2,0,3.266667,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.533333,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 3.187 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Close_All_Open_Citations
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.466667,0.8,4.8,0.8,7,0,8,0)
(v6,6,65536,4.8,0.8,4.8,1.2,7,0,8,0)
(v6,7,65536,4.8,1.2,1.466667,1.2,7,0,8,0)
(v6,8,65536,1.466667,1.2,1.466667,0.8,7,0,8,0))))
(g9,9,8
(v6,9,0,3.066667,0.4,3.066667,0.2,7,0,8,0)
(g9,11,1025
(p8,11,0,5,7,0
(g9,11,0
(g9,11,0
(v6,11,0,3.011943,0.249648,3.066667,0.4,7,0,8,0)
(v6,12,0,3.066667,0.4,3.121391,0.249648,7,0,8,0)
(v6,13,0,3.121391,0.249648,3.066667,0.281722,7,0,8,0)
(v6,14,0,3.066667,0.281722,3.011943,0.249648,7,0,8,0))))
(v6,15,25167905,3.066667,0.4,3.066667,0.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection,
Begin New Page = yes>
<|,50><"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.10.><End Sub>
<F0> Primitive_Citation_Handler Package
<paragraph>
Citation manipulation is so complex an issue that a design decision
was made to provide a set of primitive, independently testable set
of subprograms for low-level manipulation of citations. The Primitive_Citation
_Handler Package provides these subprograms. The Citation_Handler
Package would then use these routines to provide the capabilities
invoked through the Command_Dispatcher.
<subhead>
Mapping to Requirements
<paragraph>
The Primitive_Citation_Handler Package implements the display, movement,
and searching capabilities in Sections 3.2.1, 3.2.3, and 3.2.4 of
the SRS.
<subhead>
Design
<paragraph>
The Primitive_Citation_Handler Package presents the following sets
of methods, types, data, and exceptions in its interface:<HR>
<|,51><HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 7.50 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,0.8,2.533333,2.4,2.533333,7,0,8,0)
(v6,3,65536,2.4,2.533333,2.4,2.933333,7,0,8,0)
(v6,4,65536,2.4,2.933333,0.8,2.933333,7,0,8,0)
(v6,5,65536,0.8,2.933333,0.8,2.533333,7,0,8,0))))
(p8,7,8,5,7,127
(g9,7,0
(g9,7,0
(v6,7,65536,0.8,3.133333,2.4,3.133333,7,0,8,0)
(v6,8,65536,2.4,3.133333,2.4,3.533333,7,0,8,0)
(v6,9,65536,2.4,3.533333,0.8,3.533333,7,0,8,0)
(v6,10,65536,0.8,3.533333,0.8,3.133333,7,0,8,0))))
(t14,11,0,0.933333,2.8,0,7,0,0,,wst:swiss10,DAF_File_Name)
(t14,12,0,0.933333,3.4,0,7,0,0,,wst:swiss10,Open_New_Citation)
(p8,14,8,5,7,127
(g9,14,0
(g9,14,0
(v6,14,65536,0.8,0.373333,5.6,0.373333,7,0,8,0)
(v6,15,65536,5.6,0.373333,5.6,7.266667,7,0,8,0)
(v6,16,65536,5.6,7.266667,0.8,7.266667,7,0,8,0)
(v6,17,65536,0.8,7.266667,0.8,0.373333,7,0,8,0))))
(t14,18,0,0.866667,0.64,0,7,0,0,,wst:swiss14,Primitive_Citation_Handler)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,0.8,3.733333,2.4,3.733333,7,0,8,0)
(v6,21,65536,2.4,3.733333,2.4,4.133333,7,0,8,0)
(v6,22,65536,2.4,4.133333,0.8,4.133333,7,0,8,0)
(v6,23,65536,0.8,4.133333,0.8,3.733333,7,0,8,0))))
(t14,24,0,0.933333,4,0,7,0,0,,wst:swiss10,Next_Screen)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,0.8,4.333333,2.4,4.333333,7,0,8,0)
(v6,27,65536,2.4,4.333333,2.4,4.733333,7,0,8,0)
(v6,28,65536,2.4,4.733333,0.8,4.733333,7,0,8,0)
(v6,29,65536,0.8,4.733333,0.8,4.333333,7,0,8,0))))
(t14,30,0,0.933333,4.6,0,7,0,0,,wst:swiss10,Previous_Screen)
(p8,32,8,5,7,127
(g9,32,0
(g9,32,0
(v6,32,65536,0.8,5,2.4,5,7,0,8,0)
(v6,33,65536,2.4,5,2.4,5.4,7,0,8,0)
(v6,34,65536,2.4,5.4,0.8,5.4,7,0,8,0)
(v6,35,65536,0.8,5.4,0.8,5,7,0,8,0))))
(t14,36,0,0.933333,5.266667,0,7,0,0,,wst:swiss10,Next_Citation)
(p8,38,8,5,7,127
(g9,38,0
(g9,38,0
(v6,38,65536,0.8,5.6,2.4,5.6,7,0,8,0)
(v6,39,65536,2.4,5.6,2.4,6,7,0,8,0)
(v6,40,65536,2.4,6,0.8,6,7,0,8,0)
(v6,41,65536,0.8,6,0.8,5.6,7,0,8,0))))
(t14,42,0,0.933333,5.866667,0,7,0,0,,wst:swiss10,Previous_Citation)
(p8,44,8,5,7,127
(g9,44,0
(g9,44,0
(v6,44,65536,4,2.533333,5.6,2.533333,7,0,8,0)
(v6,45,65536,5.6,2.533333,5.6,2.933333,7,0,8,0)
(v6,46,65536,5.6,2.933333,4,2.933333,7,0,8,0)
(v6,47,65536,4,2.933333,4,2.533333,7,0,8,0))))
(t14,48,0,4.133333,2.8,0,7,0,0,,wst:swiss10,Push)
(p8,50,8,5,7,127
(g9,50,0
(g9,50,0
(v6,50,65536,4,3.133333,5.6,3.133333,7,0,8,0)
(v6,51,65536,5.6,3.133333,5.6,3.533333,7,0,8,0)
(v6,52,65536,5.6,3.533333,4,3.533333,7,0,8,0)
(v6,53,65536,4,3.533333,4,3.133333,7,0,8,0))))
(t14,54,0,4.133333,3.4,0,7,0,0,,wst:swiss10,Pop)
(p8,56,8,5,7,127
(g9,56,0
(g9,56,0
(v6,56,65536,4,3.733333,5.6,3.733333,7,0,8,0)
(v6,57,65536,5.6,3.733333,5.6,4.133333,7,0,8,0)
(v6,58,65536,5.6,4.133333,4,4.133333,7,0,8,0)
(v6,59,65536,4,4.133333,4,3.733333,7,0,8,0))))
(t14,60,0,4.133333,4,0,7,0,0,,wst:swiss10,Load_Screen_Buffer)
(e8,61,0,0.8,0.8,2.4,0.8,0.8,1.2,7,127,5,7,0,8,0)
(t14,62,0,1,1.066667,0,7,0,0,,wst:swiss10,SEARCH_STRING)
(e8,63,0,0.8,1.333333,2.4,1.333333,0.8,1.733333,7,127,5,7,0,8,0)
(t14,64,0,0.866667,2.2,0,7,0,0,,wst:swiss10,CITATION_STATISTICS)
(e8,65,0,0.8,1.933333,2.4,1.933333,0.8,2.333333,7,127,5,7,0,8,0)
(t14,66,0,1.066667,1.6,0,7,0,0,,wst:swiss10,SEARCH_STATUS)
(e8,67,0,2.8,0.8,5.6,0.8,2.8,1.2,7,127,5,7,0,8,0)
(t14,68,0,3.333333,1.066667,0,7,0,0,,wst:swiss10,SCREEN_COUNT_OVERFLOW)
(p8,70,8,5,7,127
(g9,70,0
(g9,70,0
(v6,70,65536,4,4.333333,5.6,4.333333,7,0,8,0)
(v6,71,65536,5.6,4.333333,5.6,4.733333,7,0,8,0)
(v6,72,65536,5.6,4.733333,4,4.733333,7,0,8,0)
(v6,73,65536,4,4.733333,4,4.333333,7,0,8,0))))
(t14,74,0,4.133333,4.6,0,7,0,0,,wst:swiss10,Search_First)
(p8,76,8,5,7,127
(g9,76,0
(g9,76,0
(v6,76,65536,4,4.933333,5.6,4.933333,7,0,8,0)
(v6,77,65536,5.6,4.933333,5.6,5.333333,7,0,8,0)
(v6,78,65536,5.6,5.333333,4,5.333333,7,0,8,0)
(v6,79,65536,4,5.333333,4,4.933333,7,0,8,0))))
(t14,80,0,4.133333,5.2,0,7,0,0,,wst:swiss10,Search_Next)
(p8,82,8,5,7,127
(g9,82,0
(g9,82,0
(v6,82,65536,4,5.533333,5.6,5.533333,7,0,8,0)
(v6,83,65536,5.6,5.533333,5.6,5.933333,7,0,8,0)
(v6,84,65536,5.6,5.933333,4,5.933333,7,0,8,0)
(v6,85,65536,4,5.933333,4,5.533333,7,0,8,0))))
(t14,86,0,4.133333,5.8,0,7,0,0,,wst:swiss10,Current_Citation)
(p8,88,8,5,7,127
(g9,88,0
(g9,88,0
(v6,88,65536,0.8,6.2,2.4,6.2,7,0,8,0)
(v6,89,65536,2.4,6.2,2.4,6.6,7,0,8,0)
(v6,90,65536,2.4,6.6,0.8,6.6,7,0,8,0)
(v6,91,65536,0.8,6.6,0.8,6.2,7,0,8,0))))
(t14,92,0,0.933333,6.466667,0,7,0,0,,wst:swiss10,Suspend)
(p8,94,8,5,7,127
(g9,94,0
(g9,94,0
(v6,94,65536,4,6.133333,5.6,6.133333,7,0,8,0)
(v6,95,65536,5.6,6.133333,5.6,6.533333,7,0,8,0)
(v6,96,65536,5.6,6.533333,4,6.533333,7,0,8,0)
(v6,97,65536,4,6.533333,4,6.133333,7,0,8,0))))
(t14,98,0,4.133333,6.4,0,7,0,0,,wst:swiss10,Access_Screen)
(p8,100,8,5,7,127
(g9,100,0
(g9,100,0
(v6,100,65536,0.8,6.733333,2.4,6.733333,7,0,8,0)
(v6,101,65536,2.4,6.733333,2.4,7.133333,7,0,8,0)
(v6,102,65536,2.4,7.133333,0.8,7.133333,7,0,8,0)
(v6,103,65536,0.8,7.133333,0.8,6.733333,7,0,8,0))))
(t14,104,0,0.933333,7,0,7,0,0,,wst:swiss10,Resume)
(p8,106,8,5,7,127
(g9,106,0
(g9,106,0
(v6,106,65536,3.933333,6.72,5.6,6.72,7,0,8,0)
(v6,107,65536,5.6,6.72,5.6,7.133333,7,0,8,0)
(v6,108,65536,5.6,7.133333,3.933333,7.133333,7,0,8,0)
(v6,109,65536,3.933333,7.133333,3.933333,6.72,7,0,8,0))))
(t14,110,0,4,7,0,7,0,0,,wst:swiss10,Close_All_Open_Citations)
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
In this OID symbol, the small ovals represent data types, the large
oval represents an exception, and the rectangles represent subprograms.
<subhead,
Begin New Page = yes>
<|,52>CSC Specification
<codepara>
-- ***********************************************************************<HR>
-- ON-LINE Ada LANGUAGE REFERENCE MANUAL<HR>
-- by Richard Conn<HR>
with SYSDEP;<HR>
with Citation_Definition;<HR>
with Screen_Display_Controller;<HR>
package Primitive_Citation_Handler is<HR>
<HR>
subtype SEARCH_STRING is STRING (1..SYSDEP.Screen_String_Length);<HR>
<HR>
-- Statistics on current citation<HR>
type CITATION_STATISTICS is record<HR>
ID : Citation_Definition.CITATION_ID;<HR>
Current_Screen_Number : NATURAL;<HR>
Total_Number_of_Screens : NATURAL;<HR>
Stack_Level : NATURAL;<HR>
Search_Str : SEARCH_STRING;<HR>
Search_Last : NATURAL; -- index of last char in Search_Str<HR>
Search_May_Be_Continued : BOOLEAN;<HR>
end record;<HR>
<HR>
-- Status of a search request<HR>
type SEARCH_STATUS is record<HR>
Is_Found : BOOLEAN; -- TRUE if string was found<HR>
Found_on_Screen : NATURAL; -- if found, screen string was found
on<HR>
Found_on_Line : NATURAL; -- if found, line string was found
on<HR>
end record;<HR>
<HR>
-- Exceptions:<HR>
SCREEN_COUNT_OVERFLOW : exception;<HR>
-- raised if number of screens exceeds SYSDEP.Max_Number_of_Screens<HR>
-- raised by Open_New_Citation<HR>
<HR>
function DAF_File_Name (ITEM : in Citation_Definition.CITATION_ID)<HR>
return STRING;<HR>
-- Return the name of the *.daf file associated with a given CITATION_ID<HR>
<HR>
procedure Open_New_Citation (ID : in Citation_Definition.CITATION_ID);<HR>
-- Open a new citation for processing, closing the old one if<HR>
-- necessary; set the current screen to the first screen;<HR>
-- build an array of information on the screens<HR>
<HR>
function Push return BOOLEAN;<HR>
-- Push the stack, returning TRUE if OK<HR>
<HR>
function Pop return BOOLEAN;<HR>
-- Pop the stack, returning TRUE if OK<HR>
-- Screen Buffer is loaded appropriately<HR>
<HR>
procedure Load_Screen_Buffer;<HR>
-- Load the screen buffer with the current screen<HR>
<HR>
function Next_Screen return BOOLEAN;<HR>
<|,53> -- Advance to the next screen, returning TRUE if done;<HR>
-- if at last screen of current citation, advance to the first screen<HR>
-- of the next citation<HR>
-- Screen Buffer is loaded appropriately<HR>
<HR>
function Previous_Screen return BOOLEAN;<HR>
-- Back up to the previous screen, returning TRUE if done;<HR>
-- if at first screen of current citation, back up to last screen<HR>
-- of previous citation<HR>
-- Screen Buffer is loaded appropriately<HR>
<HR>
function Next_Citation return BOOLEAN;<HR>
-- Advance to the first screen of the next citation, returning TRUE<HR>
-- if done Screen Buffer is loaded appropriately<HR>
<HR>
function Previous_Citation return BOOLEAN;<HR>
-- Back up to the first screen of the previous citation, returning
TRUE<HR>
-- if done<HR>
-- Screen Buffer is loaded appropriately<HR>
<HR>
function Search_First (Item : in STRING) return SEARCH_STATUS;<HR>
-- Search for the Item from the beginning of the citation;<HR>
-- if Item is an empty string, resume search for last item requested<HR>
<HR>
function Search_Next (Item : in STRING) return SEARCH_STATUS;<HR>
-- Resume search for Item from the next line in the citation;<HR>
-- if Item is an empty string, resume search for last item requested<HR>
<HR>
function Current_Citation return CITATION_STATISTICS;<HR>
-- Return the statistics on the current citation<HR>
<HR>
procedure Close_All_Open_Citations;<HR>
-- Close all open citation files<HR>
<HR>
procedure Suspend;<HR>
-- Suspend operation for Print_Log<HR>
<HR>
procedure Resume;<HR>
-- Resume operation for Print_Log<HR>
<HR>
function Access_Screen<HR>
return Screen_Display_Controller.SCREEN_BUFFER_POINTER;<HR>
-- Return the address of the screen for printing or displaying<HR>
<HR>
end Primitive_Citation_Handler;
<subhead>
Required Program Units
<paragraph>
The specification requires the following program units:
<codepara>
SYSDEP<HR>
Citation_Definition<HR>
Screen_Display_Controller
<paragraph>
The body requires the following program units:
<codepara>
<|,54>DAF_Handler
<subhead>
Internal Global Code, Types, and Objects
<paragraph>
The following are global within the body:
<codepara>
-- Used to track the first and last line of each screen displayed<HR>
type SCREEN_BOUNDARIES is record<HR>
First_Line : NATURAL := 0;<HR>
Last_Line : NATURAL := 0;<HR>
end record;<HR>
<HR>
-- First and last lines for a maximum number of screens<HR>
type CITATION_SCREEN_LIST is array (1..SYSDEP.Max_Number_of_Screens)
of<HR>
SCREEN_BOUNDARIES;<HR>
<HR>
-- Information pertaining to each citation<HR>
type CITATION_STATE_INFORMATION is record<HR>
ID : Citation_Definition.CITATION_ID;<HR>
Current_Screen : NATURAL := 0;<HR>
Number_Screens : NATURAL := 0;<HR>
Screen_List : CITATION_SCREEN_LIST;<HR>
Search_May_Be_Resumed : BOOLEAN := FALSE;<HR>
Resume_on_Line : NATURAL;<HR>
File_ID : DAF_Handler.DAF_ID := 0;<HR>
end record;<HR>
<HR>
-- Stack of information on all citations selected<HR>
type CITATION_VECTOR is array (1..SYSDEP.Citation_Stack_Depth) of<HR>
CITATION_STATE_INFORMATION;<HR>
<HR>
-- The actual stack of citations<HR>
Citation_Stack : CITATION_VECTOR;<HR>
Citation_Index : NATURAL := 1;<HR>
<HR>
-- The current citation we are working on<HR>
Cur_Cit : CITATION_STATE_INFORMATION;<HR>
<HR>
-- The actual lines on the current screen<HR>
SBuffer : Screen_Display_Controller.SCREEN_BUFFER;<HR>
SBuffer_Last : NATURAL;<HR>
<HR>
-- Flag used by suspend/resume routines<HR>
Suspend_Flag : BOOLEAN := FALSE;<HR>
<HR>
-- Variables used by search routines<HR>
Search_Str : SEARCH_STRING;<HR>
Search_Last : NATURAL := 0;
<subsubsubsection,
Begin New Page = yes>
<|,55><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.1.><End Sub>
<F0> DAF_Name Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.266667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.37 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is CLV.Chapter = " "?
<End Text>)
(v6,9,0,0.8,1.333333,1.401963,1.333333,7,0,8,0)
(v6,10,0,0.8,1.333333,0.8,2,7,0,8,0)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,0.4,2,1.2,2,7,0,8,0)
(v6,13,65536,1.2,2,1.2,2.4,7,0,8,0)
(v6,14,65536,1.2,2.4,0.4,2.4,7,0,8,0)
(v6,15,65536,0.4,2.4,0.4,2,7,0,8,0))))
(T12,16,12,0.533333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.533 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return ""
<End Text>)
(T12,17,12,0.8,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(v6,18,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(T12,19,12,3.333333,1.186667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.303 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return SYSDEP.LRM_Files_Directory &<HR>
"chap" & CLV.Chapter & ".daf"
<End Text>)
(p8,21,8,5,7,127
(g9,21,0
(g9,21,0
(v6,21,65536,3.2,1.066667,5.733333,1.066667,7,0,8,0)
(v6,22,65536,5.733333,1.066667,5.733333,1.6,7,0,8,0)
(v6,23,65536,5.733333,1.6,3.2,1.6,7,0,8,0)
(v6,24,65536,3.2,1.6,3.2,1.066667,7,0,8,0))))
(T12,25,12,2.8,1.16,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,26,8
(v6,26,0,2,0.4,2,0.2,7,0,8,0)
(g9,28,1025
(p8,28,0,5,7,0
(g9,28,0
(g9,28,0
(v6,28,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,29,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,30,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,31,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,32,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,33,8
(v6,33,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,35,1025
(p8,35,0,5,7,0
(g9,35,0
(g9,35,0
(v6,35,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,36,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,37,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,38,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,39,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,40,8
(v6,40,0,3.2,1.333333,3,1.333333,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,3.049648,1.388058,3.2,1.333333,7,0,8,0)
(v6,43,0,3.2,1.333333,3.049648,1.27861,7,0,8,0)
(v6,44,0,3.049648,1.27861,3.081722,1.333333,7,0,8,0)
(v6,45,0,3.081722,1.333333,3.049648,1.388058,7,0,8,0))))
(v6,46,25167905,3.2,1.333333,3.2,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,56><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.2.><End Sub>
<F0> Open_New_Citation Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.37,0.986667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.163 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Was Cur_Cit in use<HR>
and was it open?
<End Text>)
(v6,9,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(v6,10,0,3.2,1.333333,3.2,1.6,7,0,8,0)
(T12,11,12,2.866667,1.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.847 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Close Cur_Cit
<End Text>)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,2.666667,1.6,3.866667,1.6,7,0,8,0)
(v6,14,65536,3.866667,1.6,3.866667,1.933333,7,0,8,0)
(v6,15,65536,3.866667,1.933333,2.666667,1.933333,7,0,8,0)
(v6,16,65536,2.666667,1.933333,2.666667,1.6,7,0,8,0))))
(v6,17,0,3.2,1.933333,3.2,2.266667,7,0,8,0)
(v6,18,0,2,2.8,2,1.866667,7,0,8,0)
(v6,19,0,3.2,2.266667,2,2.266667,7,0,8,0)
(T12,20,12,2.733333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,21,12,1.8,1.96,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,22,12,1.533333,2.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.86 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Set Cur_Cit.ID
<End Text>)
(p8,24,8,5,7,127
(g9,24,0
(g9,24,0
(v6,24,65536,1.4,2.8,2.533333,2.8,7,0,8,0)
(v6,25,65536,2.533333,2.8,2.533333,3.2,7,0,8,0)
(v6,26,65536,2.533333,3.2,1.4,3.2,7,0,8,0)
(v6,27,65536,1.4,3.2,1.4,2.8,7,0,8,0))))
(v6,28,0,2,3.2,2,3.6,7,0,8,0)
(T12,29,12,1.133333,3.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.003 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Open file and set Cur_Cit.File_ID
<End Text>)
(p8,31,8,5,7,127
(g9,31,0
(g9,31,0
(v6,31,65536,1,3.6,3.2,3.6,7,0,8,0)
(v6,32,65536,3.2,3.6,3.2,4,7,0,8,0)
(v6,33,65536,3.2,4,1,4,7,0,8,0)
(v6,34,65536,1,4,1,3.6,7,0,8,0))))
(v6,35,0,2,4,2,4.4,7,0,8,0)
(T12,36,12,0.733333,4.493333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.917 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
build array of screen display bounds for Cur_Cit
<End Text>)
(p8,38,8,5,7,127
(g9,38,0
(g9,38,0
(v6,38,65536,0.6,4.4,3.733333,4.4,7,0,8,0)
(v6,39,65536,3.733333,4.4,3.733333,4.8,7,0,8,0)
(v6,40,65536,3.733333,4.8,0.6,4.8,7,0,8,0)
(v6,41,65536,0.6,4.8,0.6,4.4,7,0,8,0))))
(v6,42,0,3.733333,4.6,4,4.6,7,0,8,0)
(v6,43,0,4,4.6,4,2.4,7,0,8,0)
(v6,44,0,4,2.4,5.2,2.4,7,0,8,0)
(v6,45,0,5.2,2.4,5.2,2.8,7,0,8,0)
(T12,46,12,4.333333,2.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.667 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
turn off Cur_Cit flag for<HR>
Search_May_Be_Resumed
<End Text>)
(p8,48,8,5,7,127
(g9,48,0
(g9,48,0
(v6,48,65536,4.293333,2.786667,6,2.786667,7,0,8,0)
(v6,49,65536,6,2.786667,6,3.2,7,0,8,0)
(v6,50,65536,6,3.2,4.293333,3.2,7,0,8,0)
(v6,51,65536,4.293333,3.2,4.293333,2.786667,7,0,8,0))))
(v6,52,0,5.2,3.2,5.2,3.6,7,0,8,0)
(T12,53,12,4.666667,3.693333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.103 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
copy Cur_Cit onto<HR>
Citation_Stack
<End Text>)
(p8,55,8,5,7,127
(g9,55,0
(g9,55,0
(v6,55,65536,4.6,3.6,5.8,3.6,7,0,8,0)
(v6,56,65536,5.8,3.6,5.8,4.066667,7,0,8,0)
(v6,57,65536,5.8,4.066667,4.6,4.066667,7,0,8,0)
(v6,58,65536,4.6,4.066667,4.6,3.6,7,0,8,0))))
(g9,59,8
(v6,59,0,2,0.4,2,0.2,7,0,8,0)
(g9,61,1025
(p8,61,0,5,7,0
(g9,61,0
(g9,61,0
(v6,61,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,62,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,63,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,64,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,65,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,66,8
(v6,66,0,2,2.8,2,2.6,7,0,8,0)
(g9,68,1025
(p8,68,0,5,7,0
(g9,68,0
(g9,68,0
(v6,68,0,1.945275,2.649648,2,2.8,7,0,8,0)
(v6,69,0,2,2.8,2.054723,2.649648,7,0,8,0)
(v6,70,0,2.054723,2.649648,2,2.681722,7,0,8,0)
(v6,71,0,2,2.681722,1.945275,2.649648,7,0,8,0))))
(v6,72,25167905,2,2.8,2,2.8,7,127,8,0)))
(g9,73,8
(v6,73,0,2,3.6,2,3.4,7,0,8,0)
(g9,75,1025
(p8,75,0,5,7,0
(g9,75,0
(g9,75,0
(v6,75,0,1.945275,3.449648,2,3.6,7,0,8,0)
(v6,76,0,2,3.6,2.054723,3.449648,7,0,8,0)
(v6,77,0,2.054723,3.449648,2,3.481722,7,0,8,0)
(v6,78,0,2,3.481722,1.945275,3.449648,7,0,8,0))))
(v6,79,25167905,2,3.6,2,3.6,7,127,8,0)))
(g9,80,8
(v6,80,0,2,4.4,2,4.2,7,0,8,0)
(g9,82,1025
(p8,82,0,5,7,0
(g9,82,0
(g9,82,0
(v6,82,0,1.945275,4.249648,2,4.4,7,0,8,0)
(v6,83,0,2,4.4,2.054723,4.249648,7,0,8,0)
(v6,84,0,2.054723,4.249648,2,4.281722,7,0,8,0)
(v6,85,0,2,4.281722,1.945275,4.249648,7,0,8,0))))
(v6,86,25167905,2,4.4,2,4.4,7,127,8,0)))
(g9,87,8
(v6,87,0,5.2,2.8,5.2,2.6,7,0,8,0)
(g9,89,1025
(p8,89,0,5,7,0
(g9,89,0
(g9,89,0
(v6,89,0,5.145275,2.649648,5.2,2.8,7,0,8,0)
(v6,90,0,5.2,2.8,5.254723,2.649648,7,0,8,0)
(v6,91,0,5.254723,2.649648,5.2,2.681722,7,0,8,0)
(v6,92,0,5.2,2.681722,5.145275,2.649648,7,0,8,0))))
(v6,93,25167905,5.2,2.8,5.2,2.8,7,127,8,0)))
(g9,94,8
(v6,94,0,5.2,3.6,5.2,3.4,7,0,8,0)
(g9,96,1025
(p8,96,0,5,7,0
(g9,96,0
(g9,96,0
(v6,96,0,5.145275,3.449648,5.2,3.6,7,0,8,0)
(v6,97,0,5.2,3.6,5.254723,3.449648,7,0,8,0)
(v6,98,0,5.254723,3.449648,5.2,3.481722,7,0,8,0)
(v6,99,0,5.2,3.481722,5.145275,3.449648,7,0,8,0))))
(v6,100,25167905,5.2,3.6,5.2,3.6,7,127,8,0)))
(g9,101,8
(v6,101,0,2,2.266667,2.2,2.266667,7,0,8,0)
(g9,103,1025
(p8,103,0,5,7,0
(g9,103,0
(g9,103,0
(v6,103,0,2.150352,2.211942,2,2.266667,7,0,8,0)
(v6,104,0,2,2.266667,2.150352,2.32139,7,0,8,0)
(v6,105,0,2.150352,2.32139,2.118278,2.266667,7,0,8,0)
(v6,106,0,2.118278,2.266667,2.150352,2.211942,7,0,8,0))))
(v6,107,25167905,2,2.266667,2,2.266667,7,127,8,0)))
(g9,108,8
(v6,108,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,110,1025
(p8,110,0,5,7,0
(g9,110,0
(g9,110,0
(v6,110,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,111,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,112,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,113,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,114,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,57><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.3.><End Sub>
<F0> Push Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.6,1.226667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.777 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is Stack full?
<End Text>)
(v6,9,0,1.401963,1.333333,0.8,1.333333,7,0,8,0)
(v6,10,0,0.8,1.333333,0.8,2,7,0,8,0)
(T12,11,12,0.4,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.82 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return FALSE
<End Text>)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,0.333333,2,1.266667,2,7,0,8,0)
(v6,14,65536,1.266667,2,1.266667,2.4,7,0,8,0)
(v6,15,65536,1.266667,2.4,0.333333,2.4,7,0,8,0)
(v6,16,65536,0.333333,2.4,0.333333,2,7,0,8,0))))
(T12,17,12,1.133333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(v6,18,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(T12,19,12,3.266667,1.16,7,127,5,7,127,8,0,3,
<!Page, Width = 1.103 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
copy Cur_Cit onto<HR>
Citation_Stack
<End Text>)
(p8,21,8,5,7,127
(g9,21,0
(g9,21,0
(v6,21,65536,3.2,1.066667,4.4,1.066667,7,0,8,0)
(v6,22,65536,4.4,1.066667,4.4,1.533333,7,0,8,0)
(v6,23,65536,4.4,1.533333,3.2,1.533333,7,0,8,0)
(v6,24,65536,3.2,1.533333,3.2,1.066667,7,0,8,0))))
(T12,25,12,2.733333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,26,0,3.8,1.533333,3.8,1.8,7,0,8,0)
(T12,27,12,3.133333,1.826667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.427 inches, Height = 0.441 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set Cur_Cit.File_ID = 0<HR>
for future checks on Is_Open
<End Text>)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,3,1.8,4.666667,1.8,7,0,8,0)
(v6,30,65536,4.666667,1.8,4.666667,2.333333,7,0,8,0)
(v6,31,65536,4.666667,2.333333,3,2.333333,7,0,8,0)
(v6,32,65536,3,2.333333,3,1.8,7,0,8,0))))
(v6,33,0,4.666667,2,5.2,2,7,0,8,0)
(T12,34,12,5.266667,1.8,7,127,5,7,127,8,0,3,
<!Page, Width = 0.867 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
increment<HR>
Citation_Index
<End Text>)
(p8,36,8,5,7,127
(g9,36,0
(g9,36,0
(v6,36,65536,5.2,1.733333,6.2,1.733333,7,0,8,0)
(v6,37,65536,6.2,1.733333,6.2,2.133333,7,0,8,0)
(v6,38,65536,6.2,2.133333,5.2,2.133333,7,0,8,0)
(v6,39,65536,5.2,2.133333,5.2,1.733333,7,0,8,0))))
(v6,40,0,5.6,2.133333,5.6,2.533333,7,0,8,0)
(p8,42,8,5,7,127
(g9,42,0
(g9,42,0
(v6,42,65536,5.133333,2.533333,6.066667,2.533333,7,0,8,0)
(v6,43,65536,6.066667,2.533333,6.066667,2.933333,7,0,8,0)
(v6,44,65536,6.066667,2.933333,5.133333,2.933333,7,0,8,0)
(v6,45,65536,5.133333,2.933333,5.133333,2.533333,7,0,8,0))))
(T12,46,12,5.2,2.626667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.763 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return TRUE
<End Text>)
(g9,47,8
(v6,47,0,2,0.4,2,0.2,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,50,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,51,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,52,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,53,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,54,8
(v6,54,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,57,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,58,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,59,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,60,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,61,8
(v6,61,0,3.8,1.8,3.8,1.6,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,3.745275,1.649648,3.8,1.8,7,0,8,0)
(v6,64,0,3.8,1.8,3.854723,1.649648,7,0,8,0)
(v6,65,0,3.854723,1.649648,3.8,1.681722,7,0,8,0)
(v6,66,0,3.8,1.681722,3.745275,1.649648,7,0,8,0))))
(v6,67,25167905,3.8,1.8,3.8,1.8,7,127,8,0)))
(g9,68,8
(v6,68,0,5.6,2.533333,5.6,2.333333,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,5.545275,2.382981,5.6,2.533333,7,0,8,0)
(v6,71,0,5.6,2.533333,5.654723,2.382981,7,0,8,0)
(v6,72,0,5.654723,2.382981,5.6,2.415055,7,0,8,0)
(v6,73,0,5.6,2.415055,5.545275,2.382981,7,0,8,0))))
(v6,74,25167905,5.6,2.533333,5.6,2.533333,7,127,8,0)))
(g9,75,8
(v6,75,0,5.2,2,5,2,7,0,8,0)
(g9,77,1025
(p8,77,0,5,7,0
(g9,77,0
(g9,77,0
(v6,77,0,5.049648,2.054725,5.2,2,7,0,8,0)
(v6,78,0,5.2,2,5.049648,1.945277,7,0,8,0)
(v6,79,0,5.049648,1.945277,5.081722,2,7,0,8,0)
(v6,80,0,5.081722,2,5.049648,2.054725,7,0,8,0))))
(v6,81,25167905,5.2,2,5.2,2,7,127,8,0)))
(g9,82,8
(v6,82,0,3.2,1.333333,3,1.333333,7,0,8,0)
(g9,84,1025
(p8,84,0,5,7,0
(g9,84,0
(g9,84,0
(v6,84,0,3.049648,1.388058,3.2,1.333333,7,0,8,0)
(v6,85,0,3.2,1.333333,3.049648,1.27861,7,0,8,0)
(v6,86,0,3.049648,1.27861,3.081722,1.333333,7,0,8,0)
(v6,87,0,3.081722,1.333333,3.049648,1.388058,7,0,8,0))))
(v6,88,25167905,3.2,1.333333,3.2,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.4.><End Sub>
<F0> Pop Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.474315,1.299019,7,127,5,7,127,8,0,7,
<!Page, Width = 0.983 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is Stack Empty?
<End Text>)
(v6,9,0,1.401963,1.333333,0.8,1.333333,7,0,8,0)
(v6,10,0,0.8,1.333333,0.8,2,7,0,8,0)
(T12,11,12,0.466667,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.82 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return FALSE
<End Text>)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,0.4,2,1.333333,2,7,0,8,0)
(v6,14,65536,1.333333,2,1.333333,2.4,7,0,8,0)
(v6,15,65536,1.333333,2.4,0.4,2.4,7,0,8,0)
(v6,16,65536,0.4,2.4,0.4,2,7,0,8,0))))
(T12,17,12,1.133333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(v6,18,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(T12,19,12,3.266667,1.226667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.397 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
close Cur_Cit.File_ID if<HR>
it is open
<End Text>)
(p8,21,8,5,7,127
(g9,21,0
(g9,21,0
(v6,21,65536,3.2,1.133333,4.8,1.133333,7,0,8,0)
(v6,22,65536,4.8,1.133333,4.8,1.533333,7,0,8,0)
(v6,23,65536,4.8,1.533333,3.2,1.533333,7,0,8,0)
(v6,24,65536,3.2,1.533333,3.2,1.133333,7,0,8,0))))
(T12,25,12,2.733333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,26,0,4,1.506667,4,2,7,0,8,0)
(T12,27,12,3.266667,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.553 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
decrement Citation_Index
<End Text>)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,3.2,2,4.866667,2,7,0,8,0)
(v6,30,65536,4.866667,2,4.866667,2.4,7,0,8,0)
(v6,31,65536,4.866667,2.4,3.2,2.4,7,0,8,0)
(v6,32,65536,3.2,2.4,3.2,2,7,0,8,0))))
(v6,33,0,4,2.4,4,2.8,7,0,8,0)
(T12,34,12,3.333333,2.893333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.22 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
restore Cur_Cit from<HR>
Citation_Stack
<End Text>)
(p8,36,8,5,7,127
(g9,36,0
(g9,36,0
(v6,36,65536,3.2,2.8,4.8,2.8,7,0,8,0)
(v6,37,65536,4.8,2.8,4.8,3.2,7,0,8,0)
(v6,38,65536,4.8,3.2,3.2,3.2,7,0,8,0)
(v6,39,65536,3.2,3.2,3.2,2.8,7,0,8,0))))
(v6,40,0,4.8,3,5.2,3,7,0,8,0)
(T12,41,12,5.266667,2.96,7,127,5,7,127,8,0,7,
<!Page, Width = 0.723 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return TRUE
<End Text>)
(p8,43,8,5,7,127
(g9,43,0
(g9,43,0
(v6,43,65536,5.2,2.8,6,2.8,7,0,8,0)
(v6,44,65536,6,2.8,6,3.2,7,0,8,0)
(v6,45,65536,6,3.2,5.2,3.2,7,0,8,0)
(v6,46,65536,5.2,3.2,5.2,2.8,7,0,8,0))))
(g9,47,8
(v6,47,0,2,0.4,2,0.2,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,50,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,51,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,52,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,53,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,54,8
(v6,54,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,57,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,58,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,59,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,60,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,61,8
(v6,61,0,4,2,4,1.8,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,3.945275,1.849648,4,2,7,0,8,0)
(v6,64,0,4,2,4.054722,1.849648,7,0,8,0)
(v6,65,0,4.054722,1.849648,4,1.881722,7,0,8,0)
(v6,66,0,4,1.881722,3.945275,1.849648,7,0,8,0))))
(v6,67,25167905,4,2,4,2,7,127,8,0)))
(g9,68,8
(v6,68,0,4,2.8,4,2.6,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,3.945275,2.649648,4,2.8,7,0,8,0)
(v6,71,0,4,2.8,4.054722,2.649648,7,0,8,0)
(v6,72,0,4.054722,2.649648,4,2.681722,7,0,8,0)
(v6,73,0,4,2.681722,3.945275,2.649648,7,0,8,0))))
(v6,74,25167905,4,2.8,4,2.8,7,127,8,0)))
(g9,75,8
(v6,75,0,5.2,3,5,3,7,0,8,0)
(g9,77,1025
(p8,77,0,5,7,0
(g9,77,0
(g9,77,0
(v6,77,0,5.049648,3.054725,5.2,3,7,0,8,0)
(v6,78,0,5.2,3,5.049648,2.945277,7,0,8,0)
(v6,79,0,5.049648,2.945277,5.081722,3,7,0,8,0)
(v6,80,0,5.081722,3,5.049648,3.054725,7,0,8,0))))
(v6,81,25167905,5.2,3,5.2,3,7,127,8,0)))
(g9,82,8
(v6,82,0,3.2,1.333333,3,1.333333,7,0,8,0)
(g9,84,1025
(p8,84,0,5,7,0
(g9,84,0
(g9,84,0
(v6,84,0,3.049648,1.388058,3.2,1.333333,7,0,8,0)
(v6,85,0,3.2,1.333333,3.049648,1.27861,7,0,8,0)
(v6,86,0,3.049648,1.27861,3.081722,1.333333,7,0,8,0)
(v6,87,0,3.081722,1.333333,3.049648,1.388058,7,0,8,0))))
(v6,88,25167905,3.2,1.333333,3.2,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,58><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.5.><End Sub>
<F0> Load_Screen_Buffer Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 5 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.133333,0.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 2.20 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
determine Start and Stop record<HR>
numbers of Cur_Cit.Current_Screen
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.4,0.8,7,0,8,0)
(v6,6,65536,4.4,0.8,4.4,1.2,7,0,8,0)
(v6,7,65536,4.4,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(T12,10,12,2.133333,1.626667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.973 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
position to Start record and read<HR>
into SBuffer(1)
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,2,1.6,4.4,1.6,7,0,8,0)
(v6,13,65536,4.4,1.6,4.4,2,7,0,8,0)
(v6,14,65536,4.4,2,2,2,7,0,8,0)
(v6,15,65536,2,2,2,1.6,7,0,8,0))))
(v6,16,0,3.2,2,3.2,2.4,7,0,8,0)
(T12,17,12,2.133333,2.493333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.967 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
sequentially read rest of records<HR>
into SBuffer
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,2,2.4,4.4,2.4,7,0,8,0)
(v6,20,65536,4.4,2.4,4.4,2.8,7,0,8,0)
(v6,21,65536,4.4,2.8,2,2.8,7,0,8,0)
(v6,22,65536,2,2.8,2,2.4,7,0,8,0))))
(v6,23,0,3.2,2.773333,3.2,3.2,7,0,8,0)
(T12,24,12,2.326667,3.253333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.673 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
mark any remaining lines in<HR>
SBuffer as UNUSED
<End Text>)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,2.193333,3.2,4.193333,3.2,7,0,8,0)
(v6,27,65536,4.193333,3.2,4.193333,3.6,7,0,8,0)
(v6,28,65536,4.193333,3.6,2.193333,3.6,7,0,8,0)
(v6,29,65536,2.193333,3.6,2.193333,3.2,7,0,8,0))))
(v6,30,0,3.2,3.6,3.2,4,7,0,8,0)
(T12,31,12,2.033333,4.053333,7,127,5,7,127,8,0,3,
<!Page, Width = 2.367 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set Cur_Cit.Search_May_Be_Resumed<HR>
flag to FALSE
<End Text>)
(p8,33,8,5,7,127
(g9,33,0
(g9,33,0
(v6,33,65536,1.933333,4,4.466667,4,7,0,8,0)
(v6,34,65536,4.466667,4,4.466667,4.4,7,0,8,0)
(v6,35,65536,4.466667,4.4,1.933333,4.4,7,0,8,0)
(v6,36,65536,1.933333,4.4,1.933333,4,7,0,8,0))))
(g9,37,8
(v6,37,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,39,1025
(p8,39,0,5,7,0
(g9,39,0
(g9,39,0
(v6,39,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,40,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,41,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,42,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,43,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,44,8
(v6,44,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,46,1025
(p8,46,0,5,7,0
(g9,46,0
(g9,46,0
(v6,46,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,47,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,48,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,49,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,50,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(g9,51,8
(v6,51,0,3.2,2.4,3.2,2.2,7,0,8,0)
(g9,53,1025
(p8,53,0,5,7,0
(g9,53,0
(g9,53,0
(v6,53,0,3.145275,2.249648,3.2,2.4,7,0,8,0)
(v6,54,0,3.2,2.4,3.254723,2.249648,7,0,8,0)
(v6,55,0,3.254723,2.249648,3.2,2.281722,7,0,8,0)
(v6,56,0,3.2,2.281722,3.145275,2.249648,7,0,8,0))))
(v6,57,25167905,3.2,2.4,3.2,2.4,7,127,8,0)))
(g9,58,8
(v6,58,0,3.2,3.2,3.2,3,7,0,8,0)
(g9,60,1025
(p8,60,0,5,7,0
(g9,60,0
(g9,60,0
(v6,60,0,3.145275,3.049648,3.2,3.2,7,0,8,0)
(v6,61,0,3.2,3.2,3.254723,3.049648,7,0,8,0)
(v6,62,0,3.254723,3.049648,3.2,3.081722,7,0,8,0)
(v6,63,0,3.2,3.081722,3.145275,3.049648,7,0,8,0))))
(v6,64,25167905,3.2,3.2,3.2,3.2,7,127,8,0)))
(g9,65,8
(v6,65,0,3.2,4,3.2,3.8,7,0,8,0)
(g9,67,1025
(p8,67,0,5,7,0
(g9,67,0
(g9,67,0
(v6,67,0,3.145275,3.849648,3.2,4,7,0,8,0)
(v6,68,0,3.2,4,3.254723,3.849648,7,0,8,0)
(v6,69,0,3.254723,3.849648,3.2,3.881722,7,0,8,0)
(v6,70,0,3.2,3.881722,3.145275,3.849648,7,0,8,0))))
(v6,71,25167905,3.2,4,3.2,4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,59><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.6.><End Sub>
<F0> Next_Screen Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.133333,0.986667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.80 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is Cur_Cit.Current_Screen<HR>
<< Cur_Cit.Number_Screens?
<End Text>)
(v6,9,0,1.401963,1.333333,0.8,1.333333,7,0,8,0)
(v6,10,0,0.8,1.333333,0.8,2,7,0,8,0)
(T12,11,12,0.333333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.197 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return Next_Citation
<End Text>)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,0.2,2,1.6,2,7,0,8,0)
(v6,14,65536,1.6,2,1.6,2.4,7,0,8,0)
(v6,15,65536,1.6,2.4,0.2,2.4,7,0,8,0)
(v6,16,65536,0.2,2.4,0.2,2,7,0,8,0))))
(T12,17,12,0.666667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,18,0,2.533333,1.333333,3.799999,1.333333,7,0,8,0)
(T12,19,12,3.866667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.063 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Increment Cur_Cit.Current_Screen
<End Text>)
(p8,21,8,5,7,127
(g9,21,0
(g9,21,0
(v6,21,65536,3.8,1.133333,6,1.133333,7,0,8,0)
(v6,22,65536,6,1.133333,6,1.533333,7,0,8,0)
(v6,23,65536,6,1.533333,3.8,1.533333,7,0,8,0)
(v6,24,65536,3.8,1.533333,3.8,1.133333,7,0,8,0))))
(v6,25,0,4.8,1.533333,4.8,2,7,0,8,0)
(T12,26,12,4.133333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.493 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Load_Screen_Buffer
<End Text>)
(p8,28,8,5,7,127
(g9,28,0
(g9,28,0
(v6,28,65536,4,2,5.733333,2,7,0,8,0)
(v6,29,65536,5.733333,2,5.733333,2.4,7,0,8,0)
(v6,30,65536,5.733333,2.4,4,2.4,7,0,8,0)
(v6,31,65536,4,2.4,4,2,7,0,8,0))))
(v6,32,0,4.8,2.4,4.8,2.8,7,0,8,0)
(T12,33,12,4.4,2.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.723 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return TRUE
<End Text>)
(p8,35,8,5,7,127
(g9,35,0
(g9,35,0
(v6,35,65536,4.2,2.8,5.4,2.8,7,0,8,0)
(v6,36,65536,5.4,2.8,5.4,3.2,7,0,8,0)
(v6,37,65536,5.4,3.2,4.2,3.2,7,0,8,0)
(v6,38,65536,4.2,3.2,4.2,2.8,7,0,8,0))))
(T12,39,12,3.266667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(g9,40,8
(v6,40,0,2,0.4,2,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,43,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,44,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,45,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,46,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,50,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,51,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,52,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,53,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,54,8
(v6,54,0,4.8,2,4.8,1.8,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,4.745275,1.849648,4.8,2,7,0,8,0)
(v6,57,0,4.8,2,4.854723,1.849648,7,0,8,0)
(v6,58,0,4.854723,1.849648,4.8,1.881722,7,0,8,0)
(v6,59,0,4.8,1.881722,4.745275,1.849648,7,0,8,0))))
(v6,60,25167905,4.8,2,4.8,2,7,127,8,0)))
(g9,61,8
(v6,61,0,4.8,2.8,4.8,2.6,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,4.745275,2.649648,4.8,2.8,7,0,8,0)
(v6,64,0,4.8,2.8,4.854723,2.649648,7,0,8,0)
(v6,65,0,4.854723,2.649648,4.8,2.681722,7,0,8,0)
(v6,66,0,4.8,2.681722,4.745275,2.649648,7,0,8,0))))
(v6,67,25167905,4.8,2.8,4.8,2.8,7,127,8,0)))
(g9,68,8
(v6,68,0,3.799999,1.333333,3.599999,1.333333,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,3.649647,1.388058,3.799999,1.333333,7,0,8,0)
(v6,71,0,3.799999,1.333333,3.649647,1.27861,7,0,8,0)
(v6,72,0,3.649647,1.27861,3.681721,1.333333,7,0,8,0)
(v6,73,0,3.681721,1.333333,3.649647,1.388058,7,0,8,0))))
(v6,74,25167905,3.799999,1.333333,3.799999,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,60><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.7.><End Sub>
<F0> Previous_Screen Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.066667,1,7,127,5,7,127,8,0,3,
<!Page, Width = 2.067 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is Cur_Cit.Current_Screen > 1?
<End Text>)
(v6,9,0,1.401963,1.333333,0.8,1.333333,7,0,8,0)
(v6,10,0,0.8,1.333333,0.8,2,7,0,8,0)
(T12,11,12,0.666667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(v6,12,0,2.533333,1.333333,3.799999,1.333333,7,0,8,0)
(T12,13,12,3.866667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.13 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Decrement Cur_Cit.Current_Screen
<End Text>)
(p8,15,8,5,7,127
(g9,15,0
(g9,15,0
(v6,15,65536,3.8,1.133333,6,1.133333,7,0,8,0)
(v6,16,65536,6,1.133333,6,1.533333,7,0,8,0)
(v6,17,65536,6,1.533333,3.8,1.533333,7,0,8,0)
(v6,18,65536,3.8,1.533333,3.8,1.133333,7,0,8,0))))
(v6,19,0,4.8,1.533333,4.8,2,7,0,8,0)
(T12,20,12,4.133333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.493 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Load_Screen_Buffer
<End Text>)
(p8,22,8,5,7,127
(g9,22,0
(g9,22,0
(v6,22,65536,4,2,5.733333,2,7,0,8,0)
(v6,23,65536,5.733333,2,5.733333,2.4,7,0,8,0)
(v6,24,65536,5.733333,2.4,4,2.4,7,0,8,0)
(v6,25,65536,4,2.4,4,2,7,0,8,0))))
(v6,26,0,4.8,2.4,4.8,2.8,7,0,8,0)
(T12,27,12,4.4,2.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.723 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return TRUE
<End Text>)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,4.2,2.8,5.4,2.8,7,0,8,0)
(v6,30,65536,5.4,2.8,5.4,3.2,7,0,8,0)
(v6,31,65536,5.4,3.2,4.2,3.2,7,0,8,0)
(v6,32,65536,4.2,3.2,4.2,2.8,7,0,8,0))))
(T12,33,12,3.266667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(p8,35,8,5,7,127
(g9,35,0
(g9,35,0
(v6,35,65536,0.767648,1.967648,1.333333,2.533333,7,0,8,0)
(v6,36,65536,1.333333,2.533333,0.767648,3.099019,7,0,8,0)
(v6,37,65536,0.767648,3.099019,0.201963,2.533333,7,0,8,0)
(v6,38,65536,0.201963,2.533333,0.767648,1.967648,7,0,8,0))))
(T12,39,12,0.2,2.186667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.20 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK to back up to Previous Citation?
<End Text>)
(v6,40,0,1.333333,2.533333,2,2.533333,7,0,8,0)
(v6,41,0,0.8,3.4,0.8,3.066667,7,0,8,0)
(T12,42,12,0.4,3.493333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.78 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return FALSE
<End Text>)
(p8,44,8,5,7,127
(g9,44,0
(g9,44,0
(v6,44,65536,0.333333,3.4,1.266667,3.4,7,0,8,0)
(v6,45,65536,1.266667,3.4,1.266667,3.733333,7,0,8,0)
(v6,46,65536,1.266667,3.733333,0.333333,3.733333,7,0,8,0)
(v6,47,65536,0.333333,3.733333,0.333333,3.4,7,0,8,0))))
(T12,48,12,0.866667,3.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,49,12,1.6,2.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,50,12,2.133333,2.426667,7,127,5,7,127,8,0,7,
<!Page, Width = 1.71 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Open_New_Citation (PRED)
<End Text>)
(p8,52,8,5,7,127
(g9,52,0
(g9,52,0
(v6,52,65536,2,2.266667,3.866667,2.266667,7,0,8,0)
(v6,53,65536,3.866667,2.266667,3.866667,2.733333,7,0,8,0)
(v6,54,65536,3.866667,2.733333,2,2.733333,7,0,8,0)
(v6,55,65536,2,2.733333,2,2.266667,7,0,8,0))))
(v6,56,0,2.866667,2.733333,2.866667,3.066667,7,0,8,0)
(T12,57,12,2.133333,3.093333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.603 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Cur_Cit.Current_Screen =<HR>
Cur_Cit.Number_Screens
<End Text>)
(p8,59,8,5,7,127
(g9,59,0
(g9,59,0
(v6,59,65536,2,3.066667,3.8,3.066667,7,0,8,0)
(v6,60,65536,3.8,3.066667,3.8,3.466667,7,0,8,0)
(v6,61,65536,3.8,3.466667,2,3.466667,7,0,8,0)
(v6,62,65536,2,3.466667,2,3.066667,7,0,8,0))))
(v6,63,0,2.866667,3.466667,2.866667,3.866667,7,0,8,0)
(v6,64,0,2.866667,3.866667,6.333333,3.866667,7,0,8,0)
(v6,65,0,6.333333,3.866667,6.333333,2.2,7,0,8,0)
(v6,66,0,6.333333,2.2,5.733333,2.2,7,0,8,0)
(g9,67,8
(v6,67,0,2,0.4,2,0.2,7,0,8,0)
(g9,69,1025
(p8,69,0,5,7,0
(g9,69,0
(g9,69,0
(v6,69,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,70,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,71,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,72,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,73,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,74,8
(v6,74,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,76,1025
(p8,76,0,5,7,0
(g9,76,0
(g9,76,0
(v6,76,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,77,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,78,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,79,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,80,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,81,8
(v6,81,0,0.8,3.373333,0.8,3.173333,7,0,8,0)
(g9,83,1025
(p8,83,0,5,7,0
(g9,83,0
(g9,83,0
(v6,83,0,0.745275,3.222981,0.8,3.373333,7,0,8,0)
(v6,84,0,0.8,3.373333,0.854723,3.222981,7,0,8,0)
(v6,85,0,0.854723,3.222981,0.8,3.255055,7,0,8,0)
(v6,86,0,0.8,3.255055,0.745275,3.222981,7,0,8,0))))
(v6,87,25167905,0.8,3.373333,0.8,3.373333,7,127,8,0)))
(g9,88,8
(v6,88,0,2.866667,3.066667,2.866667,2.866667,7,0,8,0)
(g9,90,1025
(p8,90,0,5,7,0
(g9,90,0
(g9,90,0
(v6,90,0,2.811942,2.916315,2.866667,3.066667,7,0,8,0)
(v6,91,0,2.866667,3.066667,2.92139,2.916315,7,0,8,0)
(v6,92,0,2.92139,2.916315,2.866667,2.948389,7,0,8,0)
(v6,93,0,2.866667,2.948389,2.811942,2.916315,7,0,8,0))))
(v6,94,25167905,2.866667,3.066667,2.866667,3.066667,7,127,8,0)))
(g9,95,8
(v6,95,0,4.8,2,4.8,1.8,7,0,8,0)
(g9,97,1025
(p8,97,0,5,7,0
(g9,97,0
(g9,97,0
(v6,97,0,4.745275,1.849648,4.8,2,7,0,8,0)
(v6,98,0,4.8,2,4.854723,1.849648,7,0,8,0)
(v6,99,0,4.854723,1.849648,4.8,1.881722,7,0,8,0)
(v6,100,0,4.8,1.881722,4.745275,1.849648,7,0,8,0))))
(v6,101,25167905,4.8,2,4.8,2,7,127,8,0)))
(g9,102,8
(v6,102,0,4.8,2.8,4.8,2.6,7,0,8,0)
(g9,104,1025
(p8,104,0,5,7,0
(g9,104,0
(g9,104,0
(v6,104,0,4.745275,2.649648,4.8,2.8,7,0,8,0)
(v6,105,0,4.8,2.8,4.854723,2.649648,7,0,8,0)
(v6,106,0,4.854723,2.649648,4.8,2.681722,7,0,8,0)
(v6,107,0,4.8,2.681722,4.745275,2.649648,7,0,8,0))))
(v6,108,25167905,4.8,2.8,4.8,2.8,7,127,8,0)))
(g9,109,8
(v6,109,0,5.733333,2.2,5.933333,2.2,7,0,8,0)
(g9,111,1025
(p8,111,0,5,7,0
(g9,111,0
(g9,111,0
(v6,111,0,5.883686,2.145275,5.733333,2.2,7,0,8,0)
(v6,112,0,5.733333,2.2,5.883686,2.254723,7,0,8,0)
(v6,113,0,5.883686,2.254723,5.851611,2.2,7,0,8,0)
(v6,114,0,5.851611,2.2,5.883686,2.145275,7,0,8,0))))
(v6,115,25167905,5.733333,2.2,5.733333,2.2,7,127,8,0)))
(g9,116,8
(v6,116,0,3.799999,1.333333,3.599999,1.333333,7,0,8,0)
(g9,118,1025
(p8,118,0,5,7,0
(g9,118,0
(g9,118,0
(v6,118,0,3.649647,1.388058,3.799999,1.333333,7,0,8,0)
(v6,119,0,3.799999,1.333333,3.649647,1.27861,7,0,8,0)
(v6,120,0,3.649647,1.27861,3.681721,1.333333,7,0,8,0)
(v6,121,0,3.681721,1.333333,3.649647,1.388058,7,0,8,0))))
(v6,122,25167905,3.799999,1.333333,3.799999,1.333333,7,127,8,0)))
(g9,123,8
(v6,123,0,2,2.533333,1.8,2.533333,7,0,8,0)
(g9,125,1025
(p8,125,0,5,7,0
(g9,125,0
(g9,125,0
(v6,125,0,1.849648,2.588058,2,2.533333,7,0,8,0)
(v6,126,0,2,2.533333,1.849648,2.47861,7,0,8,0)
(v6,127,0,1.849648,2.47861,1.881722,2.533333,7,0,8,0)
(v6,128,0,1.881722,2.533333,1.849648,2.588058,7,0,8,0))))
(v6,129,25167905,2,2.533333,2,2.533333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.8.><End Sub>
<F0> Next_Citation Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.53,1.12,7,127,5,7,127,8,0,3,
<!Page, Width = 1.07 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK to advance to<HR>
Next Citation?
<End Text>)
(v6,9,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(T12,10,12,3.266667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.68 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Open_New_Citation(SUCC)
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,3.2,1.133333,5.066667,1.133333,7,0,8,0)
(v6,13,65536,5.066667,1.133333,5.066667,1.533333,7,0,8,0)
(v6,14,65536,5.066667,1.533333,3.2,1.533333,7,0,8,0)
(v6,15,65536,3.2,1.533333,3.2,1.133333,7,0,8,0))))
(v6,16,0,4,1.533333,4,2,7,0,8,0)
(T12,17,12,3.333333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.493 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Load_Screen_Buffer
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,3.2,2,5.066667,2,7,0,8,0)
(v6,20,65536,5.066667,2,5.066667,2.4,7,0,8,0)
(v6,21,65536,5.066667,2.4,3.2,2.4,7,0,8,0)
(v6,22,65536,3.2,2.4,3.2,2,7,0,8,0))))
(v6,23,0,4,2.4,4,2.666667,7,0,8,0)
(T12,24,12,3.6,2.76,7,127,5,7,127,8,0,7,
<!Page, Width = 0.723 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return TRUE
<End Text>)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,3.4,2.666667,4.533333,2.666667,7,0,8,0)
(v6,27,65536,4.533333,2.666667,4.533333,2.933333,7,0,8,0)
(v6,28,65536,4.533333,2.933333,3.4,2.933333,7,0,8,0)
(v6,29,65536,3.4,2.933333,3.4,2.666667,7,0,8,0))))
(v6,30,0,1.401963,1.333333,0.8,1.333333,7,0,8,0)
(v6,31,0,0.8,1.333333,0.8,2,7,0,8,0)
(p8,33,8,5,7,127
(g9,33,0
(g9,33,0
(v6,33,65536,0.266667,2,1.4,2,7,0,8,0)
(v6,34,65536,1.4,2,1.4,2.266667,7,0,8,0)
(v6,35,65536,1.4,2.266667,0.266667,2.266667,7,0,8,0)
(v6,36,65536,0.266667,2.266667,0.266667,2,7,0,8,0))))
(T12,37,12,0.466667,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.78 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return FALSE
<End Text>)
(T12,38,12,1.133333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,39,12,2.8,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(g9,40,8
(v6,40,0,2,0.4,2,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,43,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,44,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,45,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,46,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,50,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,51,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,52,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,53,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,54,8
(v6,54,0,4,2,4,1.8,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,3.945275,1.849648,4,2,7,0,8,0)
(v6,57,0,4,2,4.054722,1.849648,7,0,8,0)
(v6,58,0,4.054722,1.849648,4,1.881722,7,0,8,0)
(v6,59,0,4,1.881722,3.945275,1.849648,7,0,8,0))))
(v6,60,25167905,4,2,4,2,7,127,8,0)))
(g9,61,8
(v6,61,0,4,2.666667,4,2.466667,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,3.945275,2.516314,4,2.666667,7,0,8,0)
(v6,64,0,4,2.666667,4.054722,2.516314,7,0,8,0)
(v6,65,0,4.054722,2.516314,4,2.548389,7,0,8,0)
(v6,66,0,4,2.548389,3.945275,2.516314,7,0,8,0))))
(v6,67,25167905,4,2.666667,4,2.666667,7,127,8,0)))
(g9,68,8
(v6,68,0,3.2,1.333333,3,1.333333,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,3.049648,1.388058,3.2,1.333333,7,0,8,0)
(v6,71,0,3.2,1.333333,3.049648,1.27861,7,0,8,0)
(v6,72,0,3.049648,1.27861,3.081722,1.333333,7,0,8,0)
(v6,73,0,3.081722,1.333333,3.049648,1.388058,7,0,8,0))))
(v6,74,25167905,3.2,1.333333,3.2,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<|,61><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.9.><End Sub>
<F0> Previous_Citation Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.53,1.12,7,127,5,7,127,8,0,3,
<!Page, Width = 1.137 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
OK to back up to<HR>
Previous Citation?
<End Text>)
(v6,9,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(T12,10,12,3.266667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.653 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Open_New_Citation(PRED)
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,3.2,1.133333,5.066667,1.133333,7,0,8,0)
(v6,13,65536,5.066667,1.133333,5.066667,1.533333,7,0,8,0)
(v6,14,65536,5.066667,1.533333,3.2,1.533333,7,0,8,0)
(v6,15,65536,3.2,1.533333,3.2,1.133333,7,0,8,0))))
(v6,16,0,4,1.533333,4,2,7,0,8,0)
(T12,17,12,3.333333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.493 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Load_Screen_Buffer
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,3.2,2,5.066667,2,7,0,8,0)
(v6,20,65536,5.066667,2,5.066667,2.4,7,0,8,0)
(v6,21,65536,5.066667,2.4,3.2,2.4,7,0,8,0)
(v6,22,65536,3.2,2.4,3.2,2,7,0,8,0))))
(v6,23,0,4,2.4,4,2.666667,7,0,8,0)
(T12,24,12,3.6,2.76,7,127,5,7,127,8,0,7,
<!Page, Width = 0.723 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return TRUE
<End Text>)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,3.4,2.666667,4.533333,2.666667,7,0,8,0)
(v6,27,65536,4.533333,2.666667,4.533333,2.933333,7,0,8,0)
(v6,28,65536,4.533333,2.933333,3.4,2.933333,7,0,8,0)
(v6,29,65536,3.4,2.933333,3.4,2.666667,7,0,8,0))))
(v6,30,0,1.401963,1.333333,0.8,1.333333,7,0,8,0)
(v6,31,0,0.8,1.333333,0.8,2,7,0,8,0)
(p8,33,8,5,7,127
(g9,33,0
(g9,33,0
(v6,33,65536,0.266667,2,1.4,2,7,0,8,0)
(v6,34,65536,1.4,2,1.4,2.266667,7,0,8,0)
(v6,35,65536,1.4,2.266667,0.266667,2.266667,7,0,8,0)
(v6,36,65536,0.266667,2.266667,0.266667,2,7,0,8,0))))
(T12,37,12,0.466667,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.78 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return FALSE
<End Text>)
(T12,38,12,1.133333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,39,12,2.8,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(g9,40,8
(v6,40,0,2,0.4,2,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,43,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,44,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,45,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,46,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,0.8,2,0.8,1.8,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,0.745275,1.849648,0.8,2,7,0,8,0)
(v6,50,0,0.8,2,0.854723,1.849648,7,0,8,0)
(v6,51,0,0.854723,1.849648,0.8,1.881722,7,0,8,0)
(v6,52,0,0.8,1.881722,0.745275,1.849648,7,0,8,0))))
(v6,53,25167905,0.8,2,0.8,2,7,127,8,0)))
(g9,54,8
(v6,54,0,4,2,4,1.8,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,3.945275,1.849648,4,2,7,0,8,0)
(v6,57,0,4,2,4.054722,1.849648,7,0,8,0)
(v6,58,0,4.054722,1.849648,4,1.881722,7,0,8,0)
(v6,59,0,4,1.881722,3.945275,1.849648,7,0,8,0))))
(v6,60,25167905,4,2,4,2,7,127,8,0)))
(g9,61,8
(v6,61,0,4,2.666667,4,2.466667,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,3.945275,2.516314,4,2.666667,7,0,8,0)
(v6,64,0,4,2.666667,4.054722,2.516314,7,0,8,0)
(v6,65,0,4.054722,2.516314,4,2.548389,7,0,8,0)
(v6,66,0,4,2.548389,3.945275,2.516314,7,0,8,0))))
(v6,67,25167905,4,2.666667,4,2.666667,7,127,8,0)))
(g9,68,8
(v6,68,0,3.2,1.333333,3,1.333333,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,3.049648,1.388058,3.2,1.333333,7,0,8,0)
(v6,71,0,3.2,1.333333,3.049648,1.27861,7,0,8,0)
(v6,72,0,3.049648,1.27861,3.081722,1.333333,7,0,8,0)
(v6,73,0,3.081722,1.333333,3.049648,1.388058,7,0,8,0))))
(v6,74,25167905,3.2,1.333333,3.2,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,62><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.10.><End Sub>
<F0> Search_First Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.466667,1.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.103 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is String argument<HR>
empty?
<End Text>)
(v6,9,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(v6,10,0,3.2,1.333333,3.2,1.733333,7,0,8,0)
(T12,11,12,2.4,1.826667,7,127,5,7,127,8,0,7,
<!Page, Width = 2.06 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Set Search_Str to String argument
<End Text>)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,2.333333,1.733333,4.533333,1.733333,7,0,8,0)
(v6,14,65536,4.533333,1.733333,4.533333,2.066667,7,0,8,0)
(v6,15,65536,4.533333,2.066667,2.333333,2.066667,7,0,8,0)
(v6,16,65536,2.333333,2.066667,2.333333,1.733333,7,0,8,0))))
(v6,17,0,3.2,2.066667,3.2,2.4,7,0,8,0)
(v6,18,0,3.2,2.4,2,2.4,7,0,8,0)
(v6,19,0,2,2.8,2,1.866667,7,0,8,0)
(T12,20,12,2.666667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,21,12,1.733333,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,22,12,1.333333,2.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.353 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
search from 1st line of<HR>
Cur_Cit
<End Text>)
(p8,24,8,5,7,127
(g9,24,0
(g9,24,0
(v6,24,65536,1.2,2.8,2.8,2.8,7,0,8,0)
(v6,25,65536,2.8,2.8,2.8,3.2,7,0,8,0)
(v6,26,65536,2.8,3.2,1.2,3.2,7,0,8,0)
(v6,27,65536,1.2,3.2,1.2,2.8,7,0,8,0))))
(v6,28,0,2,3.2,2,3.6,7,0,8,0)
(p8,30,8,5,7,127
(g9,30,0
(g9,30,0
(v6,30,65536,1.967648,3.567648,2.533333,4.133333,7,0,8,0)
(v6,31,65536,2.533333,4.133333,1.967648,4.699019,7,0,8,0)
(v6,32,65536,1.967648,4.699019,1.401963,4.133333,7,0,8,0)
(v6,33,65536,1.401963,4.133333,1.967648,3.567648,7,0,8,0))))
(T12,34,12,1.6,4.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.843 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
String Found?
<End Text>)
(v6,35,0,2.533333,4.133333,3.2,4.133333,7,0,8,0)
(T12,36,12,3.333333,4.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.367 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set Cur_Cit.Search_May_Be_Resumed<HR>
to TRUE
<End Text>)
(p8,38,8,5,7,127
(g9,38,0
(g9,38,0
(v6,38,65536,3.2,3.933333,5.8,3.933333,7,0,8,0)
(v6,39,65536,5.8,3.933333,5.8,4.4,7,0,8,0)
(v6,40,65536,5.8,4.4,3.2,4.4,7,0,8,0)
(v6,41,65536,3.2,4.4,3.2,3.933333,7,0,8,0))))
(v6,42,0,4.4,4.4,4.4,4.8,7,0,8,0)
(T12,43,12,3.6,4.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.81 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set Cur_Cit.Resume _on_Line
<End Text>)
(p8,45,8,5,7,127
(g9,45,0
(g9,45,0
(v6,45,65536,3.533333,4.8,5.533333,4.8,7,0,8,0)
(v6,46,65536,5.533333,4.8,5.533333,5.2,7,0,8,0)
(v6,47,65536,5.533333,5.2,3.533333,5.2,7,0,8,0)
(v6,48,65536,3.533333,5.2,3.533333,4.8,7,0,8,0))))
(v6,49,0,4.4,5.2,4.4,5.466667,7,0,8,0)
(v6,50,0,4.4,5.466667,2,5.466667,7,0,8,0)
(v6,51,0,2,5.8,2,4.666667,7,0,8,0)
(T12,52,12,1.4,5.76,7,127,5,7,127,8,0,7,
<!Page, Width = 1.317 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return result of search
<End Text>)
(p8,54,8,5,7,127
(g9,54,0
(g9,54,0
(v6,54,65536,1.266667,5.733333,2.8,5.733333,7,0,8,0)
(v6,55,65536,2.8,5.733333,2.8,5.933333,7,0,8,0)
(v6,56,65536,2.8,5.933333,1.266667,5.933333,7,0,8,0)
(v6,57,65536,1.266667,5.933333,1.266667,5.733333,7,0,8,0))))
(T12,58,12,2.666667,3.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,59,12,1.8,4.76,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,60,8
(v6,60,0,2,0.4,2,0.2,7,0,8,0)
(g9,62,1025
(p8,62,0,5,7,0
(g9,62,0
(g9,62,0
(v6,62,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,63,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,64,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,65,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,66,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,67,8
(v6,67,0,3.2,1.733333,3.2,1.533333,7,0,8,0)
(g9,69,1025
(p8,69,0,5,7,0
(g9,69,0
(g9,69,0
(v6,69,0,3.145275,1.582981,3.2,1.733333,7,0,8,0)
(v6,70,0,3.2,1.733333,3.254723,1.582981,7,0,8,0)
(v6,71,0,3.254723,1.582981,3.2,1.615055,7,0,8,0)
(v6,72,0,3.2,1.615055,3.145275,1.582981,7,0,8,0))))
(v6,73,25167905,3.2,1.733333,3.2,1.733333,7,127,8,0)))
(g9,74,8
(v6,74,0,2,2.8,2,2.6,7,0,8,0)
(g9,76,1025
(p8,76,0,5,7,0
(g9,76,0
(g9,76,0
(v6,76,0,1.945275,2.649648,2,2.8,7,0,8,0)
(v6,77,0,2,2.8,2.054723,2.649648,7,0,8,0)
(v6,78,0,2.054723,2.649648,2,2.681722,7,0,8,0)
(v6,79,0,2,2.681722,1.945275,2.649648,7,0,8,0))))
(v6,80,25167905,2,2.8,2,2.8,7,127,8,0)))
(g9,81,8
(v6,81,0,2,3.6,2,3.4,7,0,8,0)
(g9,83,1025
(p8,83,0,5,7,0
(g9,83,0
(g9,83,0
(v6,83,0,1.945275,3.449648,2,3.6,7,0,8,0)
(v6,84,0,2,3.6,2.054723,3.449648,7,0,8,0)
(v6,85,0,2.054723,3.449648,2,3.481722,7,0,8,0)
(v6,86,0,2,3.481722,1.945275,3.449648,7,0,8,0))))
(v6,87,25167905,2,3.6,2,3.6,7,127,8,0)))
(g9,88,8
(v6,88,0,4.4,4.8,4.4,4.6,7,0,8,0)
(g9,90,1025
(p8,90,0,5,7,0
(g9,90,0
(g9,90,0
(v6,90,0,4.345275,4.649648,4.4,4.8,7,0,8,0)
(v6,91,0,4.4,4.8,4.454722,4.649648,7,0,8,0)
(v6,92,0,4.454722,4.649648,4.4,4.681722,7,0,8,0)
(v6,93,0,4.4,4.681722,4.345275,4.649648,7,0,8,0))))
(v6,94,25167905,4.4,4.8,4.4,4.8,7,127,8,0)))
(g9,95,8
(v6,95,0,2,5.72,2,5.52,7,0,8,0)
(g9,97,1025
(p8,97,0,5,7,0
(g9,97,0
(g9,97,0
(v6,97,0,1.945275,5.569648,2,5.72,7,0,8,0)
(v6,98,0,2,5.72,2.054723,5.569648,7,0,8,0)
(v6,99,0,2.054723,5.569648,2,5.601722,7,0,8,0)
(v6,100,0,2,5.601722,1.945275,5.569648,7,0,8,0))))
(v6,101,25167905,2,5.72,2,5.72,7,127,8,0)))
(g9,102,8
(v6,102,0,2,5.466667,2.2,5.466667,7,0,8,0)
(g9,104,1025
(p8,104,0,5,7,0
(g9,104,0
(g9,104,0
(v6,104,0,2.150352,5.411943,2,5.466667,7,0,8,0)
(v6,105,0,2,5.466667,2.150352,5.521391,7,0,8,0)
(v6,106,0,2.150352,5.521391,2.118278,5.466667,7,0,8,0)
(v6,107,0,2.118278,5.466667,2.150352,5.411943,7,0,8,0))))
(v6,108,25167905,2,5.466667,2,5.466667,7,127,8,0)))
(g9,109,8
(v6,109,0,2,2.4,2.2,2.4,7,0,8,0)
(g9,111,1025
(p8,111,0,5,7,0
(g9,111,0
(g9,111,0
(v6,111,0,2.150352,2.345275,2,2.4,7,0,8,0)
(v6,112,0,2,2.4,2.150352,2.454722,7,0,8,0)
(v6,113,0,2.150352,2.454722,2.118278,2.4,7,0,8,0)
(v6,114,0,2.118278,2.4,2.150352,2.345275,7,0,8,0))))
(v6,115,25167905,2,2.4,2,2.4,7,127,8,0)))
(g9,116,8
(v6,116,0,3.2,4.133333,3,4.133333,7,0,8,0)
(g9,118,1025
(p8,118,0,5,7,0
(g9,118,0
(g9,118,0
(v6,118,0,3.049648,4.188058,3.2,4.133333,7,0,8,0)
(v6,119,0,3.2,4.133333,3.049648,4.07861,7,0,8,0)
(v6,120,0,3.049648,4.07861,3.081722,4.133333,7,0,8,0)
(v6,121,0,3.081722,4.133333,3.049648,4.188058,7,0,8,0))))
(v6,122,25167905,3.2,4.133333,3.2,4.133333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,63><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.11.><End Sub>
<F0> Search_Next Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 6 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.466667,1.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.103 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is String argument<HR>
empty?
<End Text>)
(v6,9,0,2.533333,1.333333,3.2,1.333333,7,0,8,0)
(v6,10,0,3.2,1.333333,3.2,1.733333,7,0,8,0)
(T12,11,12,2.4,1.826667,7,127,5,7,127,8,0,7,
<!Page, Width = 2.06 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Set Search_Str to String argument
<End Text>)
(p8,13,8,5,7,127
(g9,13,0
(g9,13,0
(v6,13,65536,2.333333,1.733333,4.533333,1.733333,7,0,8,0)
(v6,14,65536,4.533333,1.733333,4.533333,2.066667,7,0,8,0)
(v6,15,65536,4.533333,2.066667,2.333333,2.066667,7,0,8,0)
(v6,16,65536,2.333333,2.066667,2.333333,1.733333,7,0,8,0))))
(v6,17,0,3.2,2.066667,3.2,2.4,7,0,8,0)
(v6,18,0,3.2,2.4,2,2.4,7,0,8,0)
(v6,19,0,2,2.8,2,1.866667,7,0,8,0)
(T12,20,12,2.666667,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,21,12,1.733333,1.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,22,12,0.2,2.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 3.80 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
search from next line of Cur_Cit if Search_May_Be_Resumed, else search
from 1st line of current screen
<End Text>)
(v6,23,0,2,3.2,2,3.6,7,0,8,0)
(p8,25,8,5,7,127
(g9,25,0
(g9,25,0
(v6,25,65536,1.967648,3.567648,2.533333,4.133333,7,0,8,0)
(v6,26,65536,2.533333,4.133333,1.967648,4.699019,7,0,8,0)
(v6,27,65536,1.967648,4.699019,1.401963,4.133333,7,0,8,0)
(v6,28,65536,1.401963,4.133333,1.967648,3.567648,7,0,8,0))))
(T12,29,12,1.6,4.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.843 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
String Found?
<End Text>)
(v6,30,0,2.533333,4.133333,3.2,4.133333,7,0,8,0)
(T12,31,12,3.333333,4.026667,7,127,5,7,127,8,0,3,
<!Page, Width = 2.367 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set Cur_Cit.Search_May_Be_Resumed<HR>
to TRUE
<End Text>)
(p8,33,8,5,7,127
(g9,33,0
(g9,33,0
(v6,33,65536,3.2,3.933333,5.8,3.933333,7,0,8,0)
(v6,34,65536,5.8,3.933333,5.8,4.4,7,0,8,0)
(v6,35,65536,5.8,4.4,3.2,4.4,7,0,8,0)
(v6,36,65536,3.2,4.4,3.2,3.933333,7,0,8,0))))
(v6,37,0,4.4,4.4,4.4,4.8,7,0,8,0)
(T12,38,12,3.6,4.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.81 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set Cur_Cit.Resume _on_Line
<End Text>)
(p8,40,8,5,7,127
(g9,40,0
(g9,40,0
(v6,40,65536,3.533333,4.8,5.533333,4.8,7,0,8,0)
(v6,41,65536,5.533333,4.8,5.533333,5.2,7,0,8,0)
(v6,42,65536,5.533333,5.2,3.533333,5.2,7,0,8,0)
(v6,43,65536,3.533333,5.2,3.533333,4.8,7,0,8,0))))
(v6,44,0,4.4,5.2,4.4,5.466667,7,0,8,0)
(v6,45,0,4.4,5.466667,2,5.466667,7,0,8,0)
(v6,46,0,2,5.8,2,4.666667,7,0,8,0)
(T12,47,12,1.4,5.76,7,127,5,7,127,8,0,7,
<!Page, Width = 1.317 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return result of search
<End Text>)
(p8,49,8,5,7,127
(g9,49,0
(g9,49,0
(v6,49,65536,1.266667,5.733333,2.8,5.733333,7,0,8,0)
(v6,50,65536,2.8,5.733333,2.8,5.933333,7,0,8,0)
(v6,51,65536,2.8,5.933333,1.266667,5.933333,7,0,8,0)
(v6,52,65536,1.266667,5.933333,1.266667,5.733333,7,0,8,0))))
(T12,53,12,2.666667,3.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,54,12,1.8,4.76,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(p8,56,8,5,7,127
(g9,56,0
(g9,56,0
(v6,56,65536,0.066667,2.8,4,2.8,7,0,8,0)
(v6,57,65536,4,2.8,4,3.2,7,0,8,0)
(v6,58,65536,4,3.2,0.066667,3.2,7,0,8,0)
(v6,59,65536,0.066667,3.2,0.066667,2.8,7,0,8,0))))
(g9,60,8
(v6,60,0,2,0.4,2,0.2,7,0,8,0)
(g9,62,1025
(p8,62,0,5,7,0
(g9,62,0
(g9,62,0
(v6,62,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,63,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,64,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,65,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,66,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,67,8
(v6,67,0,2,2.8,2,2.6,7,0,8,0)
(g9,69,1025
(p8,69,0,5,7,0
(g9,69,0
(g9,69,0
(v6,69,0,1.945275,2.649648,2,2.8,7,0,8,0)
(v6,70,0,2,2.8,2.054723,2.649648,7,0,8,0)
(v6,71,0,2.054723,2.649648,2,2.681722,7,0,8,0)
(v6,72,0,2,2.681722,1.945275,2.649648,7,0,8,0))))
(v6,73,25167905,2,2.8,2,2.8,7,127,8,0)))
(g9,74,8
(v6,74,0,2,3.6,2,3.4,7,0,8,0)
(g9,76,1025
(p8,76,0,5,7,0
(g9,76,0
(g9,76,0
(v6,76,0,1.945275,3.449648,2,3.6,7,0,8,0)
(v6,77,0,2,3.6,2.054723,3.449648,7,0,8,0)
(v6,78,0,2.054723,3.449648,2,3.481722,7,0,8,0)
(v6,79,0,2,3.481722,1.945275,3.449648,7,0,8,0))))
(v6,80,25167905,2,3.6,2,3.6,7,127,8,0)))
(g9,81,8
(v6,81,0,2,5.72,2,5.52,7,0,8,0)
(g9,83,1025
(p8,83,0,5,7,0
(g9,83,0
(g9,83,0
(v6,83,0,1.945275,5.569648,2,5.72,7,0,8,0)
(v6,84,0,2,5.72,2.054723,5.569648,7,0,8,0)
(v6,85,0,2.054723,5.569648,2,5.601722,7,0,8,0)
(v6,86,0,2,5.601722,1.945275,5.569648,7,0,8,0))))
(v6,87,25167905,2,5.72,2,5.72,7,127,8,0)))
(g9,88,8
(v6,88,0,4.4,4.8,4.4,4.6,7,0,8,0)
(g9,90,1025
(p8,90,0,5,7,0
(g9,90,0
(g9,90,0
(v6,90,0,4.345275,4.649648,4.4,4.8,7,0,8,0)
(v6,91,0,4.4,4.8,4.454722,4.649648,7,0,8,0)
(v6,92,0,4.454722,4.649648,4.4,4.681722,7,0,8,0)
(v6,93,0,4.4,4.681722,4.345275,4.649648,7,0,8,0))))
(v6,94,25167905,4.4,4.8,4.4,4.8,7,127,8,0)))
(g9,95,8
(v6,95,0,2,5.466667,2.2,5.466667,7,0,8,0)
(g9,97,1025
(p8,97,0,5,7,0
(g9,97,0
(g9,97,0
(v6,97,0,2.150352,5.411943,2,5.466667,7,0,8,0)
(v6,98,0,2,5.466667,2.150352,5.521391,7,0,8,0)
(v6,99,0,2.150352,5.521391,2.118278,5.466667,7,0,8,0)
(v6,100,0,2.118278,5.466667,2.150352,5.411943,7,0,8,0))))
(v6,101,25167905,2,5.466667,2,5.466667,7,127,8,0)))
(g9,102,8
(v6,102,0,2,2.4,2.2,2.4,7,0,8,0)
(g9,104,1025
(p8,104,0,5,7,0
(g9,104,0
(g9,104,0
(v6,104,0,2.150352,2.345275,2,2.4,7,0,8,0)
(v6,105,0,2,2.4,2.150352,2.454722,7,0,8,0)
(v6,106,0,2.150352,2.454722,2.118278,2.4,7,0,8,0)
(v6,107,0,2.118278,2.4,2.150352,2.345275,7,0,8,0))))
(v6,108,25167905,2,2.4,2,2.4,7,127,8,0)))
(g9,109,8
(v6,109,0,3.2,4.133333,3,4.133333,7,0,8,0)
(g9,111,1025
(p8,111,0,5,7,0
(g9,111,0
(g9,111,0
(v6,111,0,3.049648,4.188058,3.2,4.133333,7,0,8,0)
(v6,112,0,3.2,4.133333,3.049648,4.07861,7,0,8,0)
(v6,113,0,3.049648,4.07861,3.081722,4.133333,7,0,8,0)
(v6,114,0,3.081722,4.133333,3.049648,4.188058,7,0,8,0))))
(v6,115,25167905,3.2,4.133333,3.2,4.133333,7,127,8,0)))
(g9,116,8
(v6,116,0,3.2,1.733333,3.2,1.533333,7,0,8,0)
(g9,118,1025
(p8,118,0,5,7,0
(g9,118,0
(g9,118,0
(v6,118,0,3.145275,1.582981,3.2,1.733333,7,0,8,0)
(v6,119,0,3.2,1.733333,3.254723,1.582981,7,0,8,0)
(v6,120,0,3.254723,1.582981,3.2,1.615055,7,0,8,0)
(v6,121,0,3.2,1.615055,3.145275,1.582981,7,0,8,0))))
(v6,122,25167905,3.2,1.733333,3.2,1.733333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,64><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.12.><End Sub>
<F0> Current_Citation Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.083333,0.933333,7,127,5,7,127,8,0,3,
<!Page, Width = 2.45 inches, Height = 1.202 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return CITATION_STATISTICS of Cur_Cit:<HR>
ID<HR>
Current_Screen<HR>
Number_Screens<HR>
Citation_Index (stack depth)<HR>
Search_Str and Search_Last<HR>
and<HR>
Search_May_Be_Resumed flag
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,4.6,0.8,7,0,8,0)
(v6,6,65536,4.6,0.8,4.6,2.266667,7,0,8,0)
(v6,7,65536,4.6,2.266667,2,2.266667,7,0,8,0)
(v6,8,65536,2,2.266667,2,0.8,7,0,8,0))))
(g9,9,8
(v6,9,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,11,1025
(p8,11,0,5,7,0
(g9,11,0
(g9,11,0
(v6,11,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,12,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,13,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,14,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,15,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.13.><End Sub>
<F0> Close_All_Open_Citations Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 1.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.51,0.853333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.557 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
close each File_ID on the<HR>
Citation_Stack
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2.4,0.8,4.133333,0.8,7,0,8,0)
(v6,6,65536,4.133333,0.8,4.133333,1.2,7,0,8,0)
(v6,7,65536,4.133333,1.2,2.4,1.2,7,0,8,0)
(v6,8,65536,2.4,1.2,2.4,0.8,7,0,8,0))))
(g9,9,8
(v6,9,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,11,1025
(p8,11,0,5,7,0
(g9,11,0
(g9,11,0
(v6,11,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,12,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,13,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,14,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,15,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,65><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.14.><End Sub>
<F0> Suspend Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.666667,0.333333,2.666667,0.733333,7,0,8,0)
(t14,2,0,2.866667,0.2,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,2.634315,0.700981,3.2,1.266667,7,0,8,0)
(v6,5,65536,3.2,1.266667,2.634315,1.832352,7,0,8,0)
(v6,6,65536,2.634315,1.832352,2.06863,1.266667,7,0,8,0)
(v6,7,65536,2.06863,1.266667,2.634315,0.700981,7,0,8,0))))
(T12,8,12,2.133333,0.96,7,127,5,7,127,8,0,3,
<!Page, Width = 1.167 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is File_ID valid and<HR>
is File_ID open?
<End Text>)
(v6,9,0,3.2,1.266667,3.866667,1.266667,7,0,8,0)
(T12,10,12,3.933333,1.226667,7,127,5,7,127,8,0,7,
<!Page, Width = 1.287 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
close Cur_Cit.File_ID
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,3.866667,1.133333,5.4,1.133333,7,0,8,0)
(v6,13,65536,5.4,1.133333,5.4,1.533333,7,0,8,0)
(v6,14,65536,5.4,1.533333,3.866667,1.533333,7,0,8,0)
(v6,15,65536,3.866667,1.533333,3.866667,1.133333,7,0,8,0))))
(T12,16,12,3.4,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(v6,17,0,4.666667,1.533333,4.666667,2.2,7,0,8,0)
(v6,18,0,4.666667,2.2,2.666667,2.2,7,0,8,0)
(v6,19,0,2.666667,2.466667,2.666667,1.8,7,0,8,0)
(T12,20,12,1.8,2.56,7,127,5,7,127,8,0,7,
<!Page, Width = 2.127 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set internal Suspend_Flag to TRUE
<End Text>)
(p8,22,8,5,7,127
(g9,22,0
(g9,22,0
(v6,22,65536,1.733333,2.466667,4.066667,2.466667,7,0,8,0)
(v6,23,65536,4.066667,2.466667,4.066667,2.8,7,0,8,0)
(v6,24,65536,4.066667,2.8,1.733333,2.8,7,0,8,0)
(v6,25,65536,1.733333,2.8,1.733333,2.466667,7,0,8,0))))
(T12,26,12,2.4,1.826667,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(g9,27,8
(v6,27,0,2.666667,0.333333,2.666667,0.133333,7,0,8,0)
(g9,29,1025
(p8,29,0,5,7,0
(g9,29,0
(g9,29,0
(v6,29,0,2.611942,0.182981,2.666667,0.333333,7,0,8,0)
(v6,30,0,2.666667,0.333333,2.72139,0.182981,7,0,8,0)
(v6,31,0,2.72139,0.182981,2.666667,0.215055,7,0,8,0)
(v6,32,0,2.666667,0.215055,2.611942,0.182981,7,0,8,0))))
(v6,33,25167905,2.666667,0.333333,2.666667,0.333333,7,127,8,0)))
(g9,34,8
(v6,34,0,2.666667,2.466667,2.666667,2.266667,7,0,8,0)
(g9,36,1025
(p8,36,0,5,7,0
(g9,36,0
(g9,36,0
(v6,36,0,2.611942,2.316314,2.666667,2.466667,7,0,8,0)
(v6,37,0,2.666667,2.466667,2.72139,2.316314,7,0,8,0)
(v6,38,0,2.72139,2.316314,2.666667,2.348389,7,0,8,0)
(v6,39,0,2.666667,2.348389,2.611942,2.316314,7,0,8,0))))
(v6,40,25167905,2.666667,2.466667,2.666667,2.466667,7,127,8,0)))
(g9,41,8
(v6,41,0,2.666667,2.2,2.866667,2.2,7,0,8,0)
(g9,43,1025
(p8,43,0,5,7,0
(g9,43,0
(g9,43,0
(v6,43,0,2.817019,2.145275,2.666667,2.2,7,0,8,0)
(v6,44,0,2.666667,2.2,2.817019,2.254723,7,0,8,0)
(v6,45,0,2.817019,2.254723,2.784945,2.2,7,0,8,0)
(v6,46,0,2.784945,2.2,2.817019,2.145275,7,0,8,0))))
(v6,47,25167905,2.666667,2.2,2.666667,2.2,7,127,8,0)))
(g9,48,8
(v6,48,0,3.866667,1.266667,3.666667,1.266667,7,0,8,0)
(g9,50,1025
(p8,50,0,5,7,0
(g9,50,0
(g9,50,0
(v6,50,0,3.716314,1.321392,3.866667,1.266667,7,0,8,0)
(v6,51,0,3.866667,1.266667,3.716314,1.211943,7,0,8,0)
(v6,52,0,3.716314,1.211943,3.748389,1.266667,7,0,8,0)
(v6,53,0,3.748389,1.266667,3.716314,1.321392,7,0,8,0))))
(v6,54,25167905,3.866667,1.266667,3.866667,1.266667,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.15.><End Sub>
<F0> Resume Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 4 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(p8,4,8,5,7,127
(g9,4,0
(g9,4,0
(v6,4,65536,1.967648,0.767648,2.533333,1.333333,7,0,8,0)
(v6,5,65536,2.533333,1.333333,1.967648,1.899019,7,0,8,0)
(v6,6,65536,1.967648,1.899019,1.401963,1.333333,7,0,8,0)
(v6,7,65536,1.401963,1.333333,1.967648,0.767648,7,0,8,0))))
(T12,8,12,1.333333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.48 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Is Suspend_Flag TRUE?
<End Text>)
(v6,9,0,2.533333,1.333333,3.6,1.333333,7,0,8,0)
(T12,10,12,3.666667,1.293333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.263 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
open Cur_Cit.File_ID
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,3.6,1.2,5,1.2,7,0,8,0)
(v6,13,65536,5,1.2,5,1.6,7,0,8,0)
(v6,14,65536,5,1.6,3.6,1.6,7,0,8,0)
(v6,15,65536,3.6,1.6,3.6,1.2,7,0,8,0))))
(v6,16,0,4.2,1.6,4.2,2,7,0,8,0)
(T12,17,12,3.533333,2.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.493 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
call Load_Screen_Buffer
<End Text>)
(p8,19,8,5,7,127
(g9,19,0
(g9,19,0
(v6,19,65536,3.4,2,5.133333,2,7,0,8,0)
(v6,20,65536,5.133333,2,5.133333,2.4,7,0,8,0)
(v6,21,65536,5.133333,2.4,3.4,2.4,7,0,8,0)
(v6,22,65536,3.4,2.4,3.4,2,7,0,8,0))))
(v6,23,0,4.2,2.4,4.2,2.8,7,0,8,0)
(T12,24,12,3.2,2.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.183 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
set internal Suspend_Flag to FALSE
<End Text>)
(p8,26,8,5,7,127
(g9,26,0
(g9,26,0
(v6,26,65536,3.133333,2.8,5.466667,2.8,7,0,8,0)
(v6,27,65536,5.466667,2.8,5.466667,3.2,7,0,8,0)
(v6,28,65536,5.466667,3.2,3.133333,3.2,7,0,8,0)
(v6,29,65536,3.133333,3.2,3.133333,2.8,7,0,8,0))))
(v6,30,0,2,3,3.133333,3,7,0,8,0)
(v6,31,0,2,3.6,2,1.8,7,0,8,0)
(T12,32,12,3.133333,1.093333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.227 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Yes
<End Text>)
(T12,33,12,1.8,1.96,7,127,5,7,127,8,0,7,
<!Page, Width = 0.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
No
<End Text>)
(T12,34,12,1.866667,3.693333,7,127,5,7,127,8,0,7,
<!Page, Width = 0.333 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Done
<End Text>)
(g9,35,8
(v6,35,0,2,0.4,2,0.2,7,0,8,0)
(g9,37,1025
(p8,37,0,5,7,0
(g9,37,0
(g9,37,0
(v6,37,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,38,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,39,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,40,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,41,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,42,8
(v6,42,0,2,3.6,2,3.4,7,0,8,0)
(g9,44,1025
(p8,44,0,5,7,0
(g9,44,0
(g9,44,0
(v6,44,0,1.945275,3.449648,2,3.6,7,0,8,0)
(v6,45,0,2,3.6,2.054723,3.449648,7,0,8,0)
(v6,46,0,2.054723,3.449648,2,3.481722,7,0,8,0)
(v6,47,0,2,3.481722,1.945275,3.449648,7,0,8,0))))
(v6,48,25167905,2,3.6,2,3.6,7,127,8,0)))
(g9,49,8
(v6,49,0,4.2,2.8,4.2,2.6,7,0,8,0)
(g9,51,1025
(p8,51,0,5,7,0
(g9,51,0
(g9,51,0
(v6,51,0,4.145275,2.649648,4.2,2.8,7,0,8,0)
(v6,52,0,4.2,2.8,4.254723,2.649648,7,0,8,0)
(v6,53,0,4.254723,2.649648,4.2,2.681722,7,0,8,0)
(v6,54,0,4.2,2.681722,4.145275,2.649648,7,0,8,0))))
(v6,55,25167905,4.2,2.8,4.2,2.8,7,127,8,0)))
(g9,56,8
(v6,56,0,4.2,2,4.2,1.8,7,0,8,0)
(g9,58,1025
(p8,58,0,5,7,0
(g9,58,0
(g9,58,0
(v6,58,0,4.145275,1.849648,4.2,2,7,0,8,0)
(v6,59,0,4.2,2,4.254723,1.849648,7,0,8,0)
(v6,60,0,4.254723,1.849648,4.2,1.881722,7,0,8,0)
(v6,61,0,4.2,1.881722,4.145275,1.849648,7,0,8,0))))
(v6,62,25167905,4.2,2,4.2,2,7,127,8,0)))
(g9,63,8
(v6,63,0,2,3,2.2,3,7,0,8,0)
(g9,65,1025
(p8,65,0,5,7,0
(g9,65,0
(g9,65,0
(v6,65,0,2.150352,2.945275,2,3,7,0,8,0)
(v6,66,0,2,3,2.150352,3.054723,7,0,8,0)
(v6,67,0,2.150352,3.054723,2.118278,3,7,0,8,0)
(v6,68,0,2.118278,3,2.150352,2.945275,7,0,8,0))))
(v6,69,25167905,2,3,2,3,7,127,8,0)))
(g9,70,8
(v6,70,0,3.6,1.333333,3.4,1.333333,7,0,8,0)
(g9,72,1025
(p8,72,0,5,7,0
(g9,72,0
(g9,72,0
(v6,72,0,3.449648,1.388058,3.6,1.333333,7,0,8,0)
(v6,73,0,3.6,1.333333,3.449648,1.27861,7,0,8,0)
(v6,74,0,3.449648,1.27861,3.481722,1.333333,7,0,8,0)
(v6,75,0,3.481722,1.333333,3.449648,1.388058,7,0,8,0))))
(v6,76,25167905,3.6,1.333333,3.6,1.333333,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<|,66><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.10.16.><End Sub>
<F0> Access_Screen Function
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,3.2,0.4,3.2,0.8,7,0,8,0)
(t14,2,0,3.4,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.733333,0.96,7,127,5,7,127,8,0,7,
<!Page, Width = 3.567 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
convert SBuffer'ADDRESS to SCREEN_BUFFER_POINTER
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.666667,0.8,5.4,0.8,7,0,8,0)
(v6,6,65536,5.4,0.8,5.4,1.2,7,0,8,0)
(v6,7,65536,5.4,1.2,1.666667,1.2,7,0,8,0)
(v6,8,65536,1.666667,1.2,1.666667,0.8,7,0,8,0))))
(v6,9,0,3.2,1.2,3.2,1.6,7,0,8,0)
(T12,10,12,2.266667,1.76,7,127,5,7,127,8,0,7,
<!Page, Width = 2.153 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
return SCREEN_BUFFER_POINTER
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,2.2,1.6,4.6,1.6,7,0,8,0)
(v6,13,65536,4.6,1.6,4.6,2,7,0,8,0)
(v6,14,65536,4.6,2,2.2,2,7,0,8,0)
(v6,15,65536,2.2,2,2.2,1.6,7,0,8,0))))
(g9,16,8
(v6,16,0,3.2,0.4,3.2,0.2,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,3.145275,0.249648,3.2,0.4,7,0,8,0)
(v6,19,0,3.2,0.4,3.254723,0.249648,7,0,8,0)
(v6,20,0,3.254723,0.249648,3.2,0.281722,7,0,8,0)
(v6,21,0,3.2,0.281722,3.145275,0.249648,7,0,8,0))))
(v6,22,25167905,3.2,0.4,3.2,0.4,7,127,8,0)))
(g9,23,8
(v6,23,0,3.2,1.6,3.2,1.4,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,3.145275,1.449648,3.2,1.6,7,0,8,0)
(v6,26,0,3.2,1.6,3.254723,1.449648,7,0,8,0)
(v6,27,0,3.254723,1.449648,3.2,1.481722,7,0,8,0)
(v6,28,0,3.2,1.481722,3.145275,1.449648,7,0,8,0))))
(v6,29,25167905,3.2,1.6,3.2,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.11.><End Sub>
<F0> Print_Log_Handler Package
<paragraph>
The Print_Log_Handler Package implements a passive object which creates
and places entries in the Print Log File.
<subhead>
Mapping to Requirements
<paragraph>
This CSC meets requirements in the following sections of the SRS:
3.2.2 (the capability to print citations), 3.3 (Print Log File), and
3.4 (Print Log File).
<subhead>
Design
<paragraph>
The Print_Log_Handler Package presents the following sets of methods,
types, data, and exceptions in its interface:<HR>
<|,67><HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3.50 inches,
Diagram =
V6,
(g9,2,0
(p8,2,8,5,7,127
(g9,2,0
(g9,2,0
(v6,2,65536,1.6,1.333333,3.2,1.333333,7,0,8,0)
(v6,3,65536,3.2,1.333333,3.2,1.733333,7,0,8,0)
(v6,4,65536,3.2,1.733333,1.6,1.733333,7,0,8,0)
(v6,5,65536,1.6,1.733333,1.6,1.333333,7,0,8,0))))
(p8,7,8,5,7,127
(g9,7,0
(g9,7,0
(v6,7,65536,1.6,1.933333,3.2,1.933333,7,0,8,0)
(v6,8,65536,3.2,1.933333,3.2,2.333333,7,0,8,0)
(v6,9,65536,3.2,2.333333,1.6,2.333333,7,0,8,0)
(v6,10,65536,1.6,2.333333,1.6,1.933333,7,0,8,0))))
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.6,2.466667,3.2,2.466667,7,0,8,0)
(v6,13,65536,3.2,2.466667,3.2,2.866667,7,0,8,0)
(v6,14,65536,3.2,2.866667,1.6,2.866667,7,0,8,0)
(v6,15,65536,1.6,2.866667,1.6,2.466667,7,0,8,0))))
(t14,16,0,1.733333,1.6,0,7,0,0,,wst:swiss10,Print_Citation)
(t14,17,0,1.733333,2.2,0,7,0,0,,wst:swiss10,Print_Current_Screen)
(t14,18,0,1.733333,2.733333,0,7,0,0,,wst:swiss10,Close_Print_Log)
(p8,20,8,5,7,127
(g9,20,0
(g9,20,0
(v6,20,65536,1.6,0.133333,4.8,0.133333,7,0,8,0)
(v6,21,65536,4.8,0.133333,4.8,3.333333,7,0,8,0)
(v6,22,65536,4.8,3.333333,1.6,3.333333,7,0,8,0)
(v6,23,65536,1.6,3.333333,1.6,0.133333,7,0,8,0))))
(t14,24,0,1.666667,0.4,0,7,0,0,,wst:swiss14,Print_Log_Handler)
(e8,25,0,1.6,0.733333,4.266667,0.733333,1.6,1.133333,7,127,5,7,0,8,0)
(t14,26,0,1.933333,1,0,7,0,0,,wst:swiss10,PRINT_LOG_CREATION_ERROR)
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<paragraph>
In this OID symbol, the long ovals represent exceptions and the small
rectangles represent subprograms.
<subhead>
CSC Specification
<codepara>
-- ***********************************************************************<HR>
-- ON-LINE Ada LANGUAGE REFERENCE MANUAL<HR>
-- by Richard Conn<HR>
package Print_Log_Handler is<HR>
-- Abstract state machine for manipulating the Print Log File<HR>
<HR>
PRINT_LOG_CREATION_ERROR : exception;<HR>
<HR>
procedure Print_Citation;<HR>
-- Print current citation to log file<HR>
<HR>
procedure Print_Current_Screen;<HR>
-- Print current screen to log file<HR>
<HR>
procedure Close_Print_Log;<HR>
-- Close log file and display message to user<HR>
<HR>
end Print_Log_Handler;
<subhead>
Required Program Units
<paragraph>
No program units are withed by the specification. The following program
units are withed by the body:
<codepara>
SYSDEP<HR>
Citation_Definition<HR>
DAF_Handler<HR>
Primitive_Citation_Handler<HR>
<|,68>Screen_Display_Controller<HR>
Output_File
<subhead>
Internal Global Code, Types, and Objects
<paragraph>
This package contains no internal global code, types, or objects.
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.11.1.><End Sub>
<F0> Print_Current_Citation Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.4,0.893333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.373 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
open the Print_Log file<HR>
if not already opened
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.333333,0.8,2.866667,0.8,7,0,8,0)
(v6,6,65536,2.866667,0.8,2.866667,1.2,7,0,8,0)
(v6,7,65536,2.866667,1.2,1.333333,1.2,7,0,8,0)
(v6,8,65536,1.333333,1.2,1.333333,0.8,7,0,8,0))))
(v6,9,0,2,1.6,2,1.173333,7,0,8,0)
(T12,10,12,1.533333,1.693333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
print a banner to<HR>
the Print_Log file
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.4,1.6,2.733333,1.6,7,0,8,0)
(v6,13,65536,2.733333,1.6,2.733333,2.066667,7,0,8,0)
(v6,14,65536,2.733333,2.066667,1.4,2.066667,7,0,8,0)
(v6,15,65536,1.4,2.066667,1.4,1.6,7,0,8,0))))
(v6,16,0,3.2,1.8,2.706667,1.8,7,0,8,0)
(v6,17,0,3.2,1.8,3.2,0.4,7,0,8,0)
(v6,18,0,3.2,0.4,4.8,0.4,7,0,8,0)
(v6,19,0,4.8,0.4,4.8,0.8,7,0,8,0)
(T12,20,12,3.866667,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Suspend
<End Text>)
(p8,22,8,5,7,127
(g9,22,0
(g9,22,0
(v6,22,65536,3.8,0.8,6.133333,0.8,7,0,8,0)
(v6,23,65536,6.133333,0.8,6.133333,1.2,7,0,8,0)
(v6,24,65536,6.133333,1.2,3.8,1.2,7,0,8,0)
(v6,25,65536,3.8,1.2,3.8,0.8,7,0,8,0))))
(v6,26,0,4.8,1.2,4.8,1.6,7,0,8,0)
(T12,27,12,4,1.626667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.547 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
copy the entire citation to<HR>
the Print_Log file
<End Text>)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,3.866667,1.6,5.6,1.6,7,0,8,0)
(v6,30,65536,5.6,1.6,5.6,2,7,0,8,0)
(v6,31,65536,5.6,2,3.866667,2,7,0,8,0)
(v6,32,65536,3.866667,2,3.866667,1.6,7,0,8,0))))
(v6,33,0,4.8,2,4.8,2.4,7,0,8,0)
(p8,35,8,5,7,127
(g9,35,0
(g9,35,0
(v6,35,65536,3.666667,2.4,6,2.4,7,0,8,0)
(v6,36,65536,6,2.4,6,2.8,7,0,8,0)
(v6,37,65536,6,2.8,3.666667,2.8,7,0,8,0)
(v6,38,65536,3.666667,2.8,3.666667,2.4,7,0,8,0))))
(T12,39,12,3.733333,2.493333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.12 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Resume
<End Text>)
(g9,40,8
(v6,40,0,2,0.4,2,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,43,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,44,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,45,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,46,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,2,1.6,2,1.4,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,1.945275,1.449648,2,1.6,7,0,8,0)
(v6,50,0,2,1.6,2.054723,1.449648,7,0,8,0)
(v6,51,0,2.054723,1.449648,2,1.481722,7,0,8,0)
(v6,52,0,2,1.481722,1.945275,1.449648,7,0,8,0))))
(v6,53,25167905,2,1.6,2,1.6,7,127,8,0)))
(g9,54,8
(v6,54,0,4.8,0.8,4.8,0.6,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,4.745275,0.649648,4.8,0.8,7,0,8,0)
(v6,57,0,4.8,0.8,4.854723,0.649648,7,0,8,0)
(v6,58,0,4.854723,0.649648,4.8,0.681722,7,0,8,0)
(v6,59,0,4.8,0.681722,4.745275,0.649648,7,0,8,0))))
(v6,60,25167905,4.8,0.8,4.8,0.8,7,127,8,0)))
(g9,61,8
(v6,61,0,4.8,1.6,4.8,1.4,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,4.745275,1.449648,4.8,1.6,7,0,8,0)
(v6,64,0,4.8,1.6,4.854723,1.449648,7,0,8,0)
(v6,65,0,4.854723,1.449648,4.8,1.481722,7,0,8,0)
(v6,66,0,4.8,1.481722,4.745275,1.449648,7,0,8,0))))
(v6,67,25167905,4.8,1.6,4.8,1.6,7,127,8,0)))
(g9,68,8
(v6,68,0,4.8,2.4,4.8,2.2,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,4.745275,2.249648,4.8,2.4,7,0,8,0)
(v6,71,0,4.8,2.4,4.854723,2.249648,7,0,8,0)
(v6,72,0,4.854723,2.249648,4.8,2.281722,7,0,8,0)
(v6,73,0,4.8,2.281722,4.745275,2.249648,7,0,8,0))))
(v6,74,25167905,4.8,2.4,4.8,2.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection>
<"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.11.2.><End Sub>
<F0> Print_Current_Screen Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 3 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2,0.4,2,0.8,7,0,8,0)
(t14,2,0,2.2,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,1.4,0.893333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.373 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
open the Print_Log file<HR>
if not already opened
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,1.333333,0.8,2.866667,0.8,7,0,8,0)
(v6,6,65536,2.866667,0.8,2.866667,1.2,7,0,8,0)
(v6,7,65536,2.866667,1.2,1.333333,1.2,7,0,8,0)
(v6,8,65536,1.333333,1.2,1.333333,0.8,7,0,8,0))))
(v6,9,0,2,1.6,2,1.173333,7,0,8,0)
(T12,10,12,1.533333,1.693333,7,127,5,7,127,8,0,3,
<!Page, Width = 1.133 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
print a banner to<HR>
the Print_Log file
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.4,1.6,2.733333,1.6,7,0,8,0)
(v6,13,65536,2.733333,1.6,2.733333,2.066667,7,0,8,0)
(v6,14,65536,2.733333,2.066667,1.4,2.066667,7,0,8,0)
(v6,15,65536,1.4,2.066667,1.4,1.6,7,0,8,0))))
(v6,16,0,3.2,1.8,2.706667,1.8,7,0,8,0)
(v6,17,0,3.2,1.8,3.2,0.4,7,0,8,0)
(v6,18,0,3.2,0.4,4.8,0.4,7,0,8,0)
(v6,19,0,4.8,0.4,4.8,0.8,7,0,8,0)
(T12,20,12,3.866667,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.173 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Suspend
<End Text>)
(p8,22,8,5,7,127
(g9,22,0
(g9,22,0
(v6,22,65536,3.8,0.8,6.133333,0.8,7,0,8,0)
(v6,23,65536,6.133333,0.8,6.133333,1.2,7,0,8,0)
(v6,24,65536,6.133333,1.2,3.8,1.2,7,0,8,0)
(v6,25,65536,3.8,1.2,3.8,0.8,7,0,8,0))))
(v6,26,0,4.8,1.2,4.8,1.6,7,0,8,0)
(T12,27,12,3.933333,1.666667,7,127,5,7,127,8,0,3,
<!Page, Width = 1.60 inches, Height = 0.289 inches>
<micro:caption,
Alignment = Left,
Font = F84>
copy the current screen to<HR>
the Print_Log file
<End Text>)
(p8,29,8,5,7,127
(g9,29,0
(g9,29,0
(v6,29,65536,3.866667,1.6,5.6,1.6,7,0,8,0)
(v6,30,65536,5.6,1.6,5.6,2,7,0,8,0)
(v6,31,65536,5.6,2,3.866667,2,7,0,8,0)
(v6,32,65536,3.866667,2,3.866667,1.6,7,0,8,0))))
(v6,33,0,4.8,2,4.8,2.4,7,0,8,0)
(p8,35,8,5,7,127
(g9,35,0
(g9,35,0
(v6,35,65536,3.666667,2.4,6,2.4,7,0,8,0)
(v6,36,65536,6,2.4,6,2.8,7,0,8,0)
(v6,37,65536,6,2.8,3.666667,2.8,7,0,8,0)
(v6,38,65536,3.666667,2.8,3.666667,2.4,7,0,8,0))))
(T12,39,12,3.733333,2.493333,7,127,5,7,127,8,0,7,
<!Page, Width = 2.12 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Primitive_Citation_Handler.Resume
<End Text>)
(g9,40,8
(v6,40,0,2,0.4,2,0.2,7,0,8,0)
(g9,42,1025
(p8,42,0,5,7,0
(g9,42,0
(g9,42,0
(v6,42,0,1.945275,0.249648,2,0.4,7,0,8,0)
(v6,43,0,2,0.4,2.054723,0.249648,7,0,8,0)
(v6,44,0,2.054723,0.249648,2,0.281722,7,0,8,0)
(v6,45,0,2,0.281722,1.945275,0.249648,7,0,8,0))))
(v6,46,25167905,2,0.4,2,0.4,7,127,8,0)))
(g9,47,8
(v6,47,0,2,1.6,2,1.4,7,0,8,0)
(g9,49,1025
(p8,49,0,5,7,0
(g9,49,0
(g9,49,0
(v6,49,0,1.945275,1.449648,2,1.6,7,0,8,0)
(v6,50,0,2,1.6,2.054723,1.449648,7,0,8,0)
(v6,51,0,2.054723,1.449648,2,1.481722,7,0,8,0)
(v6,52,0,2,1.481722,1.945275,1.449648,7,0,8,0))))
(v6,53,25167905,2,1.6,2,1.6,7,127,8,0)))
(g9,54,8
(v6,54,0,4.8,0.8,4.8,0.6,7,0,8,0)
(g9,56,1025
(p8,56,0,5,7,0
(g9,56,0
(g9,56,0
(v6,56,0,4.745275,0.649648,4.8,0.8,7,0,8,0)
(v6,57,0,4.8,0.8,4.854723,0.649648,7,0,8,0)
(v6,58,0,4.854723,0.649648,4.8,0.681722,7,0,8,0)
(v6,59,0,4.8,0.681722,4.745275,0.649648,7,0,8,0))))
(v6,60,25167905,4.8,0.8,4.8,0.8,7,127,8,0)))
(g9,61,8
(v6,61,0,4.8,1.6,4.8,1.4,7,0,8,0)
(g9,63,1025
(p8,63,0,5,7,0
(g9,63,0
(g9,63,0
(v6,63,0,4.745275,1.449648,4.8,1.6,7,0,8,0)
(v6,64,0,4.8,1.6,4.854723,1.449648,7,0,8,0)
(v6,65,0,4.854723,1.449648,4.8,1.481722,7,0,8,0)
(v6,66,0,4.8,1.481722,4.745275,1.449648,7,0,8,0))))
(v6,67,25167905,4.8,1.6,4.8,1.6,7,127,8,0)))
(g9,68,8
(v6,68,0,4.8,2.4,4.8,2.2,7,0,8,0)
(g9,70,1025
(p8,70,0,5,7,0
(g9,70,0
(g9,70,0
(v6,70,0,4.745275,2.249648,4.8,2.4,7,0,8,0)
(v6,71,0,4.8,2.4,4.854723,2.249648,7,0,8,0)
(v6,72,0,4.854723,2.249648,4.8,2.281722,7,0,8,0)
(v6,73,0,4.8,2.281722,4.745275,2.249648,7,0,8,0))))
(v6,74,25167905,4.8,2.4,4.8,2.4,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsubsection,
Begin New Page = yes>
<|,69><"|:subsubsubsection", Subcomponent = yes><F0><Autonum, List, 4, Value = 3.2.11.3.><End Sub>
<F0> Close_Print_Log Procedure
<paragraph,
Alignment = Left>
The algorithm for this subprogram is:<HR>
<HR>
<Frame,
Name = "At Anchor",
Placement = At Anchor,
Width = 6.50 inches,
Height = 2.50 inches,
Diagram =
V6,
(g9,1,0
(v6,1,0,2.8,0.4,2.8,0.8,7,0,8,0)
(t14,2,0,3,0.266667,0,7,0,0,,wst:swiss10,Start)
(T12,3,12,2.066667,0.893333,7,127,5,7,127,8,0,7,
<!Page, Width = 1.63 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
close Print_Log file if open
<End Text>)
(p8,5,8,5,7,127
(g9,5,0
(g9,5,0
(v6,5,65536,2,0.8,3.8,0.8,7,0,8,0)
(v6,6,65536,3.8,0.8,3.8,1.2,7,0,8,0)
(v6,7,65536,3.8,1.2,2,1.2,7,0,8,0)
(v6,8,65536,2,1.2,2,0.8,7,0,8,0))))
(v6,9,0,2.8,1.2,2.8,1.6,7,0,8,0)
(T12,10,12,1.2,1.76,7,127,5,7,127,8,0,7,
<!Page, Width = 3.60 inches, Height = 0.137 inches>
<micro:caption,
Alignment = Left,
Font = F84>
Screen_Display_Controller.Print_Log_File_Closed_Message
<End Text>)
(p8,12,8,5,7,127
(g9,12,0
(g9,12,0
(v6,12,65536,1.133333,1.6,4.866667,1.6,7,0,8,0)
(v6,13,65536,4.866667,1.6,4.866667,2,7,0,8,0)
(v6,14,65536,4.866667,2,1.133333,2,7,0,8,0)
(v6,15,65536,1.133333,2,1.133333,1.6,7,0,8,0))))
(g9,16,8
(v6,16,0,2.8,0.4,2.8,0.2,7,0,8,0)
(g9,18,1025
(p8,18,0,5,7,0
(g9,18,0
(g9,18,0
(v6,18,0,2.745275,0.249648,2.8,0.4,7,0,8,0)
(v6,19,0,2.8,0.4,2.854723,0.249648,7,0,8,0)
(v6,20,0,2.854723,0.249648,2.8,0.281722,7,0,8,0)
(v6,21,0,2.8,0.281722,2.745275,0.249648,7,0,8,0))))
(v6,22,25167905,2.8,0.4,2.8,0.4,7,127,8,0)))
(g9,23,8
(v6,23,0,2.8,1.6,2.8,1.4,7,0,8,0)
(g9,25,1025
(p8,25,0,5,7,0
(g9,25,0
(g9,25,0
(v6,25,0,2.745275,1.449648,2.8,1.6,7,0,8,0)
(v6,26,0,2.8,1.6,2.854723,1.449648,7,0,8,0)
(v6,27,0,2.854723,1.449648,2.8,1.481722,7,0,8,0)
(v6,28,0,2.8,1.481722,2.745275,1.449648,7,0,8,0))))
(v6,29,25167905,2.8,1.6,2.8,1.6,7,127,8,0)))
(E15,0,0,5,8,1,0.053333,1,15,0,0,1,0,0,0,1,7,127,7,0,0,7,1,1,1,0.066667,0.06666
7,6,6,0,0.066667,6))>
<subsubsection>
<"|:subsubsection", Subcomponent = yes><F0><Autonum, List, 3, Value = 3.2.12.><End Sub>
<F0> Non-Developmental CSCs
<paragraph>
The non-developmental CSCs are reused from the CS Parts and the standard
Ada environment. They are not listed in detail here since information
on them may be readily obtained from the sources identified in the
references.
<paragraph>
The CSCs from the CS Parts are:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> CLI Package
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Console Package
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> Input_File Package
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> Output_File Package
<paragraph>
The CSCs from the standard Ada environment are:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> System Package
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Direct_IO Package
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> Unchecked_Conversion Function
<section>
<|,70><"|:section", Subcomponent = yes><F0><Autonum, List, 1, Value = 4.><End Sub>
<F0> CSCI data
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 4.1.><End Sub>
<F0> SYSDEP Package
<paragraph>
The SYSDEP (System Dependencies) Package is as follows:
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
package SYSDEP is<HR>
-- System Dependencies Package
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
LRM_Files_Directory : constant STRING :=<HR>
"/ada2_home/local/reader/ada_lrm/"; -- GE<HR>
-- "/usr/local/swengrg/reader/ada_lrm/"; -- UC<HR>
-- "c:\reader\ada_lrm\"; -- PC<HR>
-- name of the directory containing the LRM DAF files "chapxx.daf";<HR>
-- be sure to follow this directory name with a separator so
the<HR>
-- file name may be appended to it
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Program_Name : constant STRING :=<HR>
"Ada LRM Reader 2.0";<HR>
-- this will appear on the prompt line
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Print_File_Name : constant STRING :=<HR>
"lrm.log";<HR>
-- this will be created in the user's local directory
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Citation_Stack_Depth : constant := 20; -- citations<HR>
-- maximum number of citations which may be PUSHed;<HR>
-- you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
-- These values are set for a VT100 terminal and should not have
to be<HR>
-- changed<HR>
Screen_Width : constant := 75; -- chars<HR>
-- maximum number of characters that can be displayed on a line<HR>
-- without wrap; this is set to allow right and left margins and<HR>
-- markers you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Text_Line_Count : constant := 22; -- lines<HR>
Command_Line_Number : constant := 23; -- line number<HR>
Error_Message_Line_Number : constant := 24; -- line number<HR>
Screen_String_Length : constant := 78; -- characters<HR>
Search_Pointer_Column : constant := 79; -- column number<HR>
-- Line count, line numbers, and column numbers for VT100 display<HR>
-- you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
-- These values are picked up from an examination of the text files<HR>
-- of the Ada LRM; they represent a slight increase over the values<HR>
-- actually determined from the examination in order to allow for<HR>
-- a minor growth.
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Max_String_Length : constant := 110; -- chars<HR>
-- for command line and file line input;<HR>
-- you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Max_Number_of_Citations : constant := 40; -- citations per file<HR>
-- based on number of citations in each file;<HR>
-- you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
<|,71> Total_Number_of_Citations : constant := 230; -- citations
in all files<HR>
-- based on a count of the citations in all files;<HR>
-- you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
Max_Number_of_Screens : constant := 6000/(Text_Line_Count) +
1;<HR>
-- based on number of lines in largest file (chapin.doc);<HR>
-- you should not have to change this
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
subtype COPYRIGHT_STRING is STRING (1..60);<HR>
type COPYRIGHT_NOTICE is array (NATURAL range <<>) of COPYRIGHT_STRING;<HR>
Full_Copyright_Notice : constant COPYRIGHT_NOTICE := ( -- detail
omitted<HR>
);<HR>
Intro_Copyright_Notice : constant COPYRIGHT_NOTICE := ( -- detail
omitted<HR>
);
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
end SYSDEP;
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 4.2.><End Sub>
<F0> Citation_Definition Package Specification
<paragraph>
The following is an abbreviated version of the specification of package
Citation_Definition (generated by the Make_Cit Procedure as the file
CIT.ADA). The details of package Citation_Definition may vary somewhat
in later versions of the Make_Cit CSC, but the basic structure of
the Citation_Definition Package CSC can be clearly studied from the
following listing:
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
with DAF_Handler;<HR>
package Citation_Definition is
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
type CITATION_ID is (<HR>
C1,<HR>
C1P1,<HR>
C1P1P1,<HR>
C1P1P2,<HR>
C1P2,<HR>
C1P3,<HR>
C1P4,<HR>
C1P5,<HR>
C1P6,<HR>
C2,<HR>
C2P1,<HR>
C2P2,<HR>
C2P3,<HR>
C2P4,<HR>
C2P4P1,<HR>
C2P4P2,<HR>
C2P5,<HR>
C2P6,<HR>
C2P7,<HR>
C2P8,<HR>
C2P9,<HR>
C2P10,<HR>
-- detail omitted<HR>
C14,<HR>
C14P1,<HR>
C14P2,<HR>
C14P2P1,<HR>
C14P2P2,<HR>
<|,72> C14P2P3,<HR>
C14P2P4,<HR>
C14P2P5,<HR>
C14P3,<HR>
C14P3P1,<HR>
C14P3P2,<HR>
C14P3P3,<HR>
C14P3P4,<HR>
C14P3P5,<HR>
C14P3P6,<HR>
C14P3P7,<HR>
C14P3P8,<HR>
C14P3P9,<HR>
C14P3P10,<HR>
C14P4,<HR>
C14P5,<HR>
C14P6,<HR>
C14P7,<HR>
CA,<HR>
CB,<HR>
CC,<HR>
CD,<HR>
CE,<HR>
CF,<HR>
CONTENTS,<HR>
FOREWARD,<HR>
INDEX,<HR>
POSTSCRIPT,<HR>
HELP,<HR>
ABOUT,<HR>
ERROR,<HR>
-- Commands for immediate execution<HR>
N, P,<HR>
USER_INPUT, PRINT, PS,<HR>
NEXT, PREVIOUS, PAUSE, PUSH, POP,<HR>
SEARCH_FIRST, SEARCH_NEXT, REFRESH,<HR>
QUIT<HR>
);
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
type CITATION_LOCATION is record<HR>
Chapter : STRING(1..2);<HR>
Start : DAF_Handler.LINE_NUMBER;<HR>
Stop : DAF_Handler.LINE_NUMBER;<HR>
end record;
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
type CITATION_LOCATION_VECTOR is array (CITATION_ID) of CITATION_LOCATION;
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
CLV : constant CITATION_LOCATION_VECTOR := (<HR>
C1 => ("01", 23, 46),<HR>
C1P1 => ("01", 47, 55),<HR>
C1P1P1 => ("01", 56, 120),<HR>
C1P1P2 => ("01", 121, 144),<HR>
C1P2 => ("01", 145, 177),<HR>
C1P3 => ("01", 178, 253),<HR>
C1P4 => ("01", 254, 430),<HR>
C1P5 => ("01", 431, 521),<HR>
<|,73> C1P6 => ("01", 522, 582),<HR>
C2 => ("02", 24, 38),<HR>
C2P1 => ("02", 39, 130),<HR>
C2P2 => ("02", 131, 209),<HR>
C2P3 => ("02", 210, 241),<HR>
C2P4 => ("02", 242, 258),<HR>
C2P4P1 => ("02", 259, 301),<HR>
C2P4P2 => ("02", 302, 349),<HR>
C2P5 => ("02", 350, 367),<HR>
C2P6 => ("02", 368, 419),<HR>
C2P7 => ("02", 420, 448),<HR>
C2P8 => ("02", 449, 529),<HR>
C2P9 => ("02", 530, 569),<HR>
C2P10 => ("02", 570, 621),<HR>
-- detail omitted<HR>
C14 => ("14", 1, 16),<HR>
C14P1 => ("14", 17, 131),<HR>
C14P2 => ("14", 132, 169),<HR>
C14P2P1 => ("14", 170, 322),<HR>
C14P2P2 => ("14", 323, 374),<HR>
C14P2P3 => ("14", 375, 441),<HR>
C14P2P4 => ("14", 442, 530),<HR>
C14P2P5 => ("14", 531, 611),<HR>
C14P3 => ("14", 612, 715),<HR>
C14P3P1 => ("14", 716, 757),<HR>
C14P3P2 => ("14", 758, 824),<HR>
C14P3P3 => ("14", 825, 892),<HR>
C14P3P4 => ("14", 893, 1162),<HR>
C14P3P5 => ("14", 1163, 1293),<HR>
C14P3P6 => ("14", 1294, 1391),<HR>
C14P3P7 => ("14", 1392, 1514),<HR>
C14P3P8 => ("14", 1515, 1686),<HR>
C14P3P9 => ("14", 1687, 1802),<HR>
C14P3P10 => ("14", 1803, 2063),<HR>
C14P4 => ("14", 2064, 2140),<HR>
C14P5 => ("14", 2141, 2160),<HR>
C14P6 => ("14", 2161, 2200),<HR>
C14P7 => ("14", 2201, 2264),<HR>
CA => ("aa", 24, 506),<HR>
CB => ("ab", 23, 175),<HR>
CC => ("ac", 24, 320),<HR>
CD => ("ad", 24, 432),<HR>
CE => ("ae", 4, 777),<HR>
CF => ("af", 21, 61),<HR>
CONTENTS => ("co", 1, 284),<HR>
FOREWARD => ("fo", 1, 81),<HR>
INDEX => ("in", 1, 5833),<HR>
POSTSCRIPT => ("po", 1, 90),<HR>
HELP => ("he", 1, 38),<HR>
ABOUT => ("xx", 1, 12),<HR>
ERROR => (" ", 1, 1),<HR>
N => (" ", 1, 1),<HR>
P => (" ", 1, 1),<HR>
USER_INPUT => (" ", 1, 1),<HR>
PRINT => (" ", 1, 1),<HR>
<|,74> PS => (" ", 1, 1),<HR>
NEXT => (" ", 1, 1),<HR>
PREVIOUS => (" ", 1, 1),<HR>
PAUSE => (" ", 1, 1),<HR>
PUSH => (" ", 1, 1),<HR>
POP => (" ", 1, 1),<HR>
SEARCH_FIRST => (" ", 1, 1),<HR>
SEARCH_NEXT => (" ", 1, 1),<HR>
REFRESH => (" ", 1, 1),<HR>
QUIT => (" ", 1, 1)<HR>
);
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines,
Alignment = Left,
Font = F22>
end Citation_Definition;
<center,
Font = F53>
Adaptation Information
<paragraph>
The CITATION_ID called CONTENTS is always the successor to the last
of the "sequential" citations. That is, the user may advance sequentially
from the first citation to the citation before CONTENTS, but an attempt
to advance beyond the citation before CONTENTS is not allowed. If
this tool is adapted to work with different data files, following
this convention will reduce the changes required.
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Tagname = aV5?f3caconn, Value = 4.3.><End Sub>
<F0> DAF_Handler Exported Types, Data, and Exceptions
<paragraph>
The following Ada code fragments show the detail of the type, data,
and exceptions exported by the package DAF_Handler.
<code>
type LINE_TYPE is (NORMAL, SECTION, UNUSED);<HR>
<HR>
type LINE is record<HR>
Str : STRING (1 .. SYSDEP.Screen_String_Length);<HR>
Str_Last : NATURAL := 0; -- index of last char in Str<HR>
Kind : LINE_TYPE := NORMAL;<HR>
end record;<HR>
<HR>
subtype LINE_NUMBER is NATURAL range 1 .. NATURAL'LAST;<HR>
<HR>
subtype DAF_ID is NATURAL range 0 .. SYSDEP.Citation_Stack_Depth;<HR>
<HR>
DAF_CREATION_ERROR : exception;<HR>
FILE_NOT_FOUND : exception;<HR>
NO_DAF_OPEN : exception;<HR>
READ_ERROR : exception;<HR>
WRITE_ERROR : exception;<HR>
STACK_OVERFLOW : exception;<HR>
UNEXPECTED_ERROR : exception;
<paragraph>
See the full specification of the package DAF_Handler in Section 4
of this SDD to see further details on how these types and exceptions
are used.
<subsection,
Begin New Page = yes>
<|,75><"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 4.4.><End Sub>
<F0> Screen_Display_Controller Exported Types, Data, and Exceptions
<paragraph>
The following Ada code fragments show the detail of the type, data,
and exceptions exported by the package Screen_Display_Controller.
<code>
type ERROR_MESSAGE_ID is (INVALID_COMMAND,<HR>
CANNOT_ADVANCE, CANNOT_BACK,<HR>
STACK_EMPTY, STACK_FULL,<HR>
PRINT_LOG,<HR>
TOO_MANY_SCREENS,<HR>
SEARCH_STRING,<HR>
DAF_NOT_FOUND,<HR>
INTERNAL_DAF_NDFO_ERROR,<HR>
INTERNAL_DAF_RE_ERROR,<HR>
INTERNAL_DAF_SO_ERROR,<HR>
INTERNAL_DAF_UE_ERROR,<HR>
UNEXPECTED_ERROR);<HR>
type SCREEN_BUFFER is array (NATURAL'(1)..SYSDEP.Text_Line_Count)
of<HR>
DAF_Handler.LINE;<HR>
type SCREEN_BUFFER_POINTER is access SCREEN_BUFFER;
<paragraph>
The body of package Screen_Display_Controller contains an array indexed
by ERROR_MESSAGE_ID that contains the text of the error messages.
All error messages issued by the <LRM_Name, Subcomponent = yes><F40>Ada
LRM Reader<End Sub><F0> CSCI are spelled out in the body of this package,
so this is the one location to which all error messages may be tracked.
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 4.5.><End Sub>
<F0> Primitive_Citation_Handler Exported Types, Data, and Exceptions
<paragraph>
The following Ada code fragments show the detail of the type, data,
and exceptions exported by the package Primitive_Citation_Handler.
<code>
subtype SEARCH_STRING is STRING (1 .. SYSDEP.Screen_String_Length);<HR>
<HR>
-- Statistics on the current citation<HR>
type CITATION_STATISTICS is record<HR>
ID : Citation_Definition.CITATION_ID;<HR>
Current_Screen_Number : NATURAL;<HR>
Total_Number_of_Screens : NATURAL;<HR>
Stack_Level : NATURAL;<HR>
Search_Str : SEARCH_STRING;<HR>
Search_Last : NATURAL; -- index of last char in Search_Str<HR>
Search_May_Be_Continued : BOOLEAN;<HR>
end record;<HR>
<HR>
-- Status of a search request<HR>
type SEARCH_STATUS is record<HR>
Is_Found : BOOLEAN; -- TRUE if string was found<HR>
Found_on_Screen : NATURAL; -- if found, screen string was found
on<HR>
Found_on_Line : NATURAL; -- if found, line string was found on<HR>
end record;<HR>
<HR>
SCREEN_COUNT_OVERFLOW : exception;<HR>
-- raised if number of screens exceeds SYSDEP.Max_Number_of_Screens
<paragraph>
<|,76>Objects of the types CITATION_STATISTICS and SEARCH_STATUS are
returned by various subprograms in this package.
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 4.6.><End Sub>
<F0> Print_Log_Handler Exported Types, Data, and Exceptions
<paragraph>
The following Ada code fragments show the detail of the type, data,
and exceptions exported by the package Primitive_Citation_Handler.
<code>
PRINT_LOG_CREATION_ERROR : exception;
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 4.7.><End Sub>
<F0> Other CSCs
<paragraph>
The other CSCs in the <LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub>
<F0> do not export types, data, or exceptions. These CSCs are:
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Restart = Yes, Value = 1.><End Sub>
<F0> Command_Dispatcher
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 2.><End Sub>
<F0> Citation_Handler
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 3.><End Sub>
<F0> LRM_Reader
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 4.><End Sub>
<F0> Make_Cit
<list>
<"|:list", Subcomponent = yes><F0><Autonum, NList, 1, Value = 5.><End Sub>
<F0> Make_DAF
<section>
<|,77><"|:section", Subcomponent = yes><F0><Autonum, List, 1, Value = 5.><End Sub>
<F0> CSCI data files
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 5.1.><End Sub>
<F0> Data file to CSC/CSU cross reference
<paragraph,
Left Tab = 1/2.50 Inches>
The following table shows the classes of data files used in the
<LRM_Name, Subcomponent = yes><F40>Ada LRM Reader<End Sub><F0> and
the CSCs associated with them. Note that DAF stands for Direct Access
File.<HR>
<HR>
<F86>Data File<Tab>Associated CSCs<Tab>Relationship<F0><HR>
*.doc<Tab>Input_File<Tab>Package Input_File reads the *.doc files<HR>
*.daf<Tab>DAF_Handler<Tab>Package DAF_Handler creates and reads the
*.daf files<HR>
lrm.log<Tab>Print_Log_Handler<Tab>Package Print_Log_Handler creates
the lrm.log file
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 5.2.><End Sub>
<F0> *.doc Files
<paragraph>
The *.doc files are ASCII text files. The lines of these files vary
in length from 0 to 102 characters (determined by examination).
If they are in the UNIX file format, each line is terminated by a
line feed character. If they are in the MSDOS file format, each line
is terminated by a carriage return/line feed pair. If they are in
the VAX/VMS file format, each line is not terminated.
<paragraph,
Left Tab = 1/2/3 Inches>
The *.doc files comprise the source text to the Ada LRM and to the
HELP and ABOUT citations. The following table lists these files by
name. Note that under UNIX, all file names must be lower-case.<HR>
<HR>
<F86>Chapters<Tab>Appendices<Tab>Special<Tab>HELP and ABOUT<F0><HR>
chap01.doc<Tab>chapaa.doc<Tab>cahpco.doc<Tab>chaphe.doc<HR>
chap02.doc<Tab>chapab.doc<Tab>chapfo.doc<Tab>chapxx.doc<HR>
chap03.doc<Tab>chapac.doc<Tab>chapin.doc<HR>
chap04.doc<Tab>chapad.doc<Tab>chappo.doc<HR>
chap05.doc<Tab>chapae.doc<HR>
chap06.doc<Tab>chapaf.doc<HR>
chap07.doc<HR>
chap08.doc<HR>
chap09.doc<HR>
chap10.doc<HR>
chap11.doc<HR>
chap12.doc<HR>
chap13.doc<HR>
chap14.doc
<paragraph>
As delivered from the Ada Software Repository, these *.doc files contain
page numbers and an excessive number of blank lines. The *.doc files
have been modified to remove the page numbers.
<subsection,
Begin New Page = yes>
<|,78><"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 5.3.><End Sub>
<F0> *.daf Files
<paragraph>
The *.daf files correspond to the *.doc files, but the information
the *.daf files contains is in a DAF record structure to facilitate
random access and reduced overhead in the screen display functions.
Each record in the *.daf files is of type LINE, defined as:
<code>
type LINE_TYPE is (NORMAL, SECTION, UNUSED);<HR>
<HR>
type LINE is record<HR>
Str : STRING (1 .. SYSDEP.Screen_String_Length);<HR>
Str_Last : NATURAL := 0; -- index of last char in Str<HR>
Kind : LINE_TYPE := NORMAL;<HR>
end record;
<paragraph>
LINE records in the *.daf files have only two values in their Kind
fields: (1) SECTION, which indicates that this line starts a new section,
or citation, of the Ada LRM, and (2) NORMAL, which indicates that
this line is simply a part of the current section, or citation.
<paragraph>
Since the *.doc files contained an excessive number of blank lines,
the Make_DAF Procedure looks for duplication in sequence of blank
lines and removes groups larger than 3, leaving the *.daf files with
much fewer blank records.
<subsection>
<"|:subsection", Subcomponent = yes><F0><Autonum, List, 2, Value = 5.4.><End Sub>
<F0> lrm.log File
<paragraph>
The lrm.log file is composed of ASCII text lines, ranging in length
from 0 to 80 characters. It contains groups of text: (1) the text
of one or more entire citations and (2) the text of one or more single
screens from one or more citations. Prologues are placed into the
lrm.log file before each citation or screen. The prologue for an
entire citation looks like this:
<code>
----------------------------------------------------<HR>
-- Citation: 4.1
<paragraph>
The prologue for a single screen of a citation looks like this:
<code>
----------------------------------------------------<HR>
-- Citation: 4.1<HR>
-- Screen Number: 2
<paragraph>
The entries in the lrm.log file are derived from the citations in
the *.daf files in response to the user issuing PRINT and PS commands.
<section>
<|,79><"|:section", Subcomponent = yes><F0><Autonum, List, 1, Value = 6.><End Sub>
<F0> Requirements traceability
<paragraph,
Left Tab = 1/0.50*6 Inches>
The following Requirements Traceability Matrix provides a mapping
between the SRS and this SDD:<HR>
<HR>
<F86>SRS Section<Tab>SDD Sections<F0><HR>
3.1<Tab>3.2.8<HR>
3.2<Tab>3.2.6<HR>
3.2.1<Tab>3.2.6<Tab>3.2.9<Tab>3.2.10<HR>
3.2.2<Tab>3.2.6<Tab>3.2.11<HR>
3.2.3<Tab>3.2.6<Tab>3.2.9<Tab>3.2.10<HR>
3.2.4<Tab>3.2.6<Tab>3.2.9<Tab>3.2.10<HR>
3.2.5<Tab>3.2.6<HR>
3.3<Tab>3.2.1<Tab> 3.2.2<Tab> 3.2.8<Tab>3.2.11<HR>
3.4<Tab>3.2.2<Tab> 3.2.7<Tab> 3.2.8<Tab>3.2.11<HR>
3.5<Tab>3.2.4<Tab>3.2.8<HR>
3.5.1<Tab>3.2.4<HR>
3.5.2<Tab>Implementation not required<HR>
3.6<Tab>3.2.2<Tab> 3.2.3<Tab> 3.2.5<Tab> 3.2.7<HR>
3.7<Tab>3.2.6<HR>
3.8<Tab>3.2.8<HR>
3.9<Tab>Implementation not required
<section>
<|,80><"|:section", Subcomponent = yes><F0><Autonum, List, 1, Value = 7.><End Sub>
<F0> Notes
<paragraph,
Top Margin = 0 inches,
Bottom Margin = 0.14 inches,
Line Spacing = 1.179 lines>
<F92@U>Acronyms<F0><HR>
<HR>
<F84@U>Acronym<Tab>Meaning<F0><HR>
CSC<Tab>Computer Software Component<HR>
CSCI<Tab>Computer Software Configuration Item<HR>
CSU<Tab>Computer Software Unit<HR>
DAF<Tab>Direct Access File<HR>
I/O<Tab>Input/Output<HR>
OID<Tab>Object Interaction Diagram<HR>
SDD<Tab>Software Design Document<HR>
SDP<Tab>Software Development Plan<HR>
SRS<Tab>Software Requirements Specification<HR>
STD<Tab>State Transition Diagram<HR>
SUM<Tab>Software User's Manual